{"id":171,"date":"2017-10-10T21:53:25","date_gmt":"2017-10-10T19:53:25","guid":{"rendered":"https:\/\/www.pschatzmann.ch\/home\/?p=171"},"modified":"2020-11-21T22:22:53","modified_gmt":"2020-11-21T21:22:53","slug":"woocommerce-und-java-rest","status":"publish","type":"post","link":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/","title":{"rendered":"WooCommerce und Java REST Webhooks"},"content":{"rendered":"<p>I am planning to set up a Web Shop. So yesterday, I spent a full day to figure out why my WebHooks did not work together with <strong>Java Jersey<\/strong>\u00a0.<\/p>\n<p>There are quite a few traps in this topic:<\/p>\n<ul>\n<li>WooCommerce does a post when the hook is activated. This is a form encoded post which is not identical with the posts which are sent when the data is posted. So I needed to define <strong>two methods<\/strong> to handle the two different cases:<\/li>\n<\/ul>\n<pre><span class=\"s1\">@Path<\/span><span class=\"s2\">(<\/span>\"\/service\/order\"<span class=\"s2\">)<\/span>\r\n\r\n<span class=\"s3\">public<\/span> <span class=\"s3\">class<\/span> OrderService {\r\n<span class=\"s3\">public<\/span> OrderService() {}\r\n\r\n@POST\r\n<span class=\"s1\">@Path<\/span><span class=\"s2\">(<\/span>\"\/status\"<span class=\"s2\">)<\/span>\r\n<span class=\"s1\">@Consumes<\/span><span class=\"s2\">({ MediaType.<\/span>APPLICATION_FORM_URLENCODED<span class=\"s2\"> })<\/span>\r\n<span class=\"s1\">@Produces<\/span><span class=\"s2\">(MediaType.<\/span>APPLICATION_JSON<span class=\"s2\">)<\/span>\r\n<span class=\"s3\">  public<\/span> Response statusRegister(MultivaluedMap&lt;String, String&gt; <span class=\"s8\">data<\/span>) {\r\n<span class=\"s3\">  return<\/span> Response.ok().build();\r\n}\r\n\r\n@POST\r\n<span class=\"s1\">@Path<\/span><span class=\"s2\">(<\/span>\"\/status\"<span class=\"s2\">)<\/span>\r\n<span class=\"s1\">@Consumes<\/span>({ MediaType.<span class=\"s4\">APPLICATION_JSON<\/span> })\r\n<span class=\"s1\">@Produces<\/span><span class=\"s2\">(MediaType.<\/span>APPLICATION_JSON<span class=\"s2\">)<\/span>\r\n<span class=\"s3\">  public<\/span> Response status(<span class=\"s5\">Map<\/span> <span class=\"s8\">data<\/span>) {\r\n<span class=\"s3\">  return<\/span> Response.ok().build();\r\n\r\n}\r\n}<\/pre>\n<ul>\n<li>It seems that there are also <strong>restrictions with local addresses.<\/strong> I managed to have it working with a public address only (and the issues went away when I started using the port 8080. It seems there are some restrictions there as well)<\/li>\n<li>I was struggling quite some time because the registration of the event was triggering the hook, but the subsequent data changes however did not have any effects.\u00a0 It turned out that in local installations there are also issues with the <strong>cron scheduling of\u00a0 single events.<\/strong> This issue also went away when I switched to a public address.<\/li>\n<li>Here are the corresponding webhook setting<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-176\" src=\"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/Screen-Shot-2017-10-10-at-21.57.14-300x246.png\" alt=\"\" width=\"466\" height=\"382\" srcset=\"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/Screen-Shot-2017-10-10-at-21.57.14-300x246.png 300w, https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/Screen-Shot-2017-10-10-at-21.57.14-768x629.png 768w, https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/Screen-Shot-2017-10-10-at-21.57.14.png 777w\" sizes=\"auto, (max-width: 466px) 100vw, 466px\" \/><\/p>\n<p>Finally, I am happy and <a href=\"https:\/\/swissqr.ch\/home\/shop\">my shop<\/a> is working now!<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I am planning to set up a Web Shop. So yesterday, I spent a full day to figure out why my WebHooks did not work together with Java Jersey\u00a0. There are quite a few traps in this topic: WooCommerce does a post when the hook is activated. This is a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":174,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-171","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-infrastructure"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>WooCommerce und Java REST Webhooks - Phil Schatzmann<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WooCommerce und Java REST Webhooks - Phil Schatzmann\" \/>\n<meta property=\"og:description\" content=\"I am planning to set up a Web Shop. So yesterday, I spent a full day to figure out why my WebHooks did not work together with Java Jersey\u00a0. There are quite a few traps in this topic: WooCommerce does a post when the hook is activated. This is a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/\" \/>\n<meta property=\"og:site_name\" content=\"Phil Schatzmann\" \/>\n<meta property=\"article:published_time\" content=\"2017-10-10T19:53:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-21T21:22:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/eshop.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"pschatzmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pschatzmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/\"},\"author\":{\"name\":\"pschatzmann\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"headline\":\"WooCommerce und Java REST Webhooks\",\"datePublished\":\"2017-10-10T19:53:25+00:00\",\"dateModified\":\"2020-11-21T21:22:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/\"},\"wordCount\":201,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2017\\\/10\\\/eshop.jpg\",\"articleSection\":[\"Infrastructure\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/\",\"name\":\"WooCommerce und Java REST Webhooks - Phil Schatzmann\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2017\\\/10\\\/eshop.jpg\",\"datePublished\":\"2017-10-10T19:53:25+00:00\",\"dateModified\":\"2020-11-21T21:22:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2017\\\/10\\\/eshop.jpg\",\"contentUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2017\\\/10\\\/eshop.jpg\",\"width\":800,\"height\":250},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2017\\\/10\\\/10\\\/woocommerce-und-java-rest\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WooCommerce und Java REST Webhooks\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#website\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/\",\"name\":\"Phil Schatzmann Consulting\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\",\"name\":\"pschatzmann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"contentUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"width\":305,\"height\":305,\"caption\":\"pschatzmann\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WooCommerce und Java REST Webhooks - Phil Schatzmann","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/","og_locale":"en_US","og_type":"article","og_title":"WooCommerce und Java REST Webhooks - Phil Schatzmann","og_description":"I am planning to set up a Web Shop. So yesterday, I spent a full day to figure out why my WebHooks did not work together with Java Jersey\u00a0. There are quite a few traps in this topic: WooCommerce does a post when the hook is activated. This is a [&hellip;]","og_url":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/","og_site_name":"Phil Schatzmann","article_published_time":"2017-10-10T19:53:25+00:00","article_modified_time":"2020-11-21T21:22:53+00:00","og_image":[{"width":800,"height":250,"url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/eshop.jpg","type":"image\/jpeg"}],"author":"pschatzmann","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pschatzmann","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#article","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/"},"author":{"name":"pschatzmann","@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"headline":"WooCommerce und Java REST Webhooks","datePublished":"2017-10-10T19:53:25+00:00","dateModified":"2020-11-21T21:22:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/"},"wordCount":201,"commentCount":0,"publisher":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"image":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/eshop.jpg","articleSection":["Infrastructure"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/","url":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/","name":"WooCommerce und Java REST Webhooks - Phil Schatzmann","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#primaryimage"},"image":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/eshop.jpg","datePublished":"2017-10-10T19:53:25+00:00","dateModified":"2020-11-21T21:22:53+00:00","breadcrumb":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#primaryimage","url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/eshop.jpg","contentUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2017\/10\/eshop.jpg","width":800,"height":250},{"@type":"BreadcrumbList","@id":"https:\/\/www.pschatzmann.ch\/home\/2017\/10\/10\/woocommerce-und-java-rest\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pschatzmann.ch\/home\/"},{"@type":"ListItem","position":2,"name":"WooCommerce und Java REST Webhooks"}]},{"@type":"WebSite","@id":"https:\/\/www.pschatzmann.ch\/home\/#website","url":"https:\/\/www.pschatzmann.ch\/home\/","name":"Phil Schatzmann Consulting","description":"","publisher":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pschatzmann.ch\/home\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1","name":"pschatzmann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","contentUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","width":305,"height":305,"caption":"pschatzmann"},"logo":{"@id":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png"}}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/comments?post=171"}],"version-history":[{"count":1,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/171\/revisions"}],"predecessor-version":[{"id":2237,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/171\/revisions\/2237"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/media\/174"}],"wp:attachment":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/media?parent=171"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/categories?post=171"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/tags?post=171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}