{"id":7047,"date":"2016-05-13T17:01:38","date_gmt":"2016-05-13T15:01:38","guid":{"rendered":"http:\/\/blog.wenzlaff.de\/?p=7047"},"modified":"2024-09-03T17:16:19","modified_gmt":"2024-09-03T15:16:19","slug":"jersy-rest-jdom-2-0","status":"publish","type":"post","link":"http:\/\/blog.wenzlaff.de\/?p=7047","title":{"rendered":"Anzahl der Flugzeuge mit 3 Zeilen Java Code ausgeben via REST API mit Jersey und JDom 2.0"},"content":{"rendered":"<p>Mit Java ist es nicht schwer, einen REST Client zu erstellen. Das geht mit <a href=\"https:\/\/jersey.github.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jersey<\/a> und JDom in 3 Zeilen.<\/p>\n<p>Hier nun mal ein Beispiel. <\/p>\n<p>Die Anzahl der Flugzeuge in Hannover wird von mir mit einem Raspberry Pi empfangen und an <a href=\"https:\/\/thingspeak.com\/channels\/44177\" target=\"_blank\" rel=\"noopener noreferrer\">thingspeak<\/a> gesendet. <\/p>\n<p><a href=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/05\/jdom-2.0.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/05\/jdom-2.0.png\" alt=\"jdom-2.0\" width=\"640\" height=\"453\" class=\"aligncenter size-full wp-image-7048\" srcset=\"http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/05\/jdom-2.0.png 640w, http:\/\/blog.wenzlaff.de\/wp-content\/uploads\/2016\/05\/jdom-2.0-300x212.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><br \/>\nDiese Daten kann jeder leicht abfragen.<!--more--><br \/>\nEinfach die URL <a href=\"https:\/\/api.thingspeak.com\/channels\/44177\/feeds\/last.xml\" target=\"_blank\" rel=\"noopener noreferrer\">https:\/\/api.thingspeak.com\/channels\/44177\/feeds\/last.xml<\/a> in einem Browser eingeben oder den Link anklicken. Es werden z.b. diese Daten geliefert:<\/p>\n<pre class=\"lang:default decode:true \" >2016-05-13T14:40:01Z\r\n  79194\r\n  15<\/pre>\n<p>Die 15 ist die Anzahl der Flugzeuge, die alle 5 Minuten aktualisiert wird.<br \/>\nOder wenn man sich den Quelltext anschaut, sieht man dieses <a href=\"https:\/\/de.wikipedia.org\/wiki\/Extensible_Markup_Language\" target=\"_blank\" rel=\"noopener noreferrer\">XML<\/a>.<\/p>\n<pre class=\"lang:default decode:true \" >\r\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;feed&gt;\r\n  &lt;created-at type=\"dateTime\"&gt;2016-05-13T14:35:02Z&lt;\/created-at&gt;\r\n  &lt;entry-id type=\"integer\"&gt;79193&lt;\/entry-id&gt;\r\n  &lt;field1&gt;16&lt;\/field1&gt;\r\n  &lt;id type=\"integer\" nil=\"true\"\/&gt;\r\n&lt;\/feed&gt;<\/pre>\n<p>Diese Abfrage k\u00f6nnen wir nun mit einem eigenen <a href=\"https:\/\/de.wikipedia.org\/wiki\/Representational_State_Transfer\" target=\"_blank\" rel=\"noopener noreferrer\">REST Client<\/a> ausf\u00fchren. Dazu nehmen wir Jersey:<\/p>\n<pre class=\"lang:java decode:true \" > \r\n\r\n\/\/ URL des Feeds aller Flugzeuge in Hannover von Thomas Wenzlaff. \/\/\r\nprivate final static String FLUGZEUG_URL = \"https:\/\/api.thingspeak.com\/channels\/44177\/feeds\/last.xml\";\r\n\r\nString result = ClientBuilder.newClient().target(FLUGZEUG_URL).request().get(String.class);\t\r\n\r\nString field1 = new SAXBuilder().build(new StringReader(result)).getDocument().getRootElement().getChild(\"field1\").getText();\r\n\r\nSystem.out.println(\"Aktuelle Anzahl Flugzeuge in Langenhagen: \" + field1);\r\n\r\n<\/pre>\n<p>Folgende Maven Abh\u00e4ngigkeiten brauchen wir noch:<\/p>\n<pre class=\"lang:xhtml decode:true \" >&lt;dependencies&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.glassfish.jersey.core&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;jersey-client&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;2.21&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t\t&lt;dependency&gt;\r\n\t\t\t&lt;groupId&gt;org.jdom&lt;\/groupId&gt;\r\n\t\t\t&lt;artifactId&gt;jdom2&lt;\/artifactId&gt;\r\n\t\t\t&lt;version&gt;2.0.6&lt;\/version&gt;\r\n\t\t&lt;\/dependency&gt;\r\n\t&lt;\/dependencies&gt;\r\n<\/pre>\n<p>Das alles kann in ein paar Minuten implementiert werden. Wer das ganze Projekt laden m\u00f6chte, kann es bei <a href=\"https:\/\/github.com\/IT-Berater\/TWRestClient\" target=\"_blank\" rel=\"noopener noreferrer\">Github<\/a> laden bzw. anschauen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Java ist es nicht schwer, einen REST Client zu erstellen. Das geht mit Jersey und JDom in 3 Zeilen. Hier nun mal ein Beispiel. Die Anzahl der Flugzeuge in Hannover wird von mir mit einem Raspberry Pi empfangen und an thingspeak gesendet. Diese Daten kann jeder leicht abfragen.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[220,4,5,79,1023],"tags":[2509,14,364,1799,2178,2506,2507,2508,2487,102],"class_list":["post-7047","post","type-post","status-publish","format-standard","hentry","category-anleitung","category-eclipse","category-java","category-programmierung","category-raspberry-pi","tag-anzahl-der-flugzeuge","tag-api","tag-code","tag-flugzeuge","tag-java","tag-jdom","tag-jdom-2-0","tag-jersey","tag-rest","tag-xml"],"_links":{"self":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/7047","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7047"}],"version-history":[{"count":0,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=\/wp\/v2\/posts\/7047\/revisions"}],"wp:attachment":[{"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7047"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.wenzlaff.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}