{"id":102,"date":"2014-06-18T23:40:18","date_gmt":"2014-06-18T21:40:18","guid":{"rendered":"http:\/\/www.valeriofinazzo.it\/wordpress\/?p=102"},"modified":"2014-06-19T00:25:15","modified_gmt":"2014-06-18T22:25:15","slug":"spring-ws-tutorial-3-creare-il-progetto","status":"publish","type":"post","link":"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/spring-ws-tutorial-3-creare-il-progetto\/","title":{"rendered":"SPRING WS &#8211; TUTORIAL 3 &#8211; CREARE IL PROGETTO"},"content":{"rendered":"<p style=\"color: #0d293f; text-align: justify;\">Dopo aver definito il contratto passiamo all&#8217;implementazione del nostro server con servizi SOA. Per fare ci\u00f2 usiamo Maven, che permette di automatizzare parte dei processi nella gestione del nostro sistema<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Per chi non conoscesse Maven rimando alla serie di articoli pubblicati nella sezione Documentazione.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Apriamo una shell nella directory che ospita il nostro workspace e lanciamo il seguente comando<\/p>\n<pre class=\"lang:default decode:true\">mvn archetype:generate \r\n-DarchetypeGroupId=org.springframework.ws \r\n-DarchetypeArtifactId=spring-ws-archetype \r\n-DarchetypeVersion=1.5.9 \r\n-DgroupId=it.finazzo.libreria \r\n-DartifactId=libreria<\/pre>\n<p>con questo comando stiamo dicendo a maven di creare un nuovo artefatto basato sull&#8217;archetipo di spring-ws versione 1.5.9.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">A questo punto Maven ha creato una directory con l&#8217;alberatura tipica di una web application e i file xml configurati per la sua gestione.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Per semplificare i prossimi step possiamo importare il progetto tramite la direttiva eclipse:eclipse di maven. Troviamo 2 file xml pronti per essere modificati, il classico web.xml dove \u00e8 definita la servlet preposta a ricevere i messaggi e il file spring-ws-servlet.xml dove definiremo le varie componenti del nostro server.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Nella directory WEB-INF inseriamo il file xsd contenente la struttura dei nostri servizi e nel file\u00a0spring-ws-servlet.xml definiamo un bean che possa gestirlo.<\/p>\n<pre style=\"color: #0d293f;\" class=\"crayon-selected\">&lt;bean id=\"gestioneLibri\" \r\nclass=\"org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition\"&gt;\r\n&lt;property name=\"schema\" ref=\"schema\"\/&gt; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0\r\n&lt;property name=\"portTypeName\" value=\"Libreria\"\/&gt;\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n&lt;property name=\"locationUri\" value=\"\/gestioneLibri\/webservices\"\/&gt; \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\r\n&lt;\/bean&gt;\r\n&lt;bean id=\"schema\" class=\"org.springframework.xml.xsd.SimpleXsdSchema\"&gt;\r\n&lt;property name=\"xsd\" value=\"\/WEB-INF\/schema.xsd\"\/&gt;\r\n&lt;\/bean&gt;<\/pre>\n<p style=\"color: #0d293f; text-align: justify;\">Il bean &#8216;schema&#8217; mappa il file xsd tramite una classe implementata da Spring e il bean &#8216;gestioneLibri&#8217; si preoccupa di generare il file wsdl a partire dall&#8217;analisi dello schema xsd e dalle propriet\u00e0 definite, secondo quanto indicato nel precedente articolo.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">A questo punto tramite la direttiva install creiamo il file war e facciamo il deploy della nostra applicazione su tomcat.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Una volta attivato il contesto il file wsdl sar\u00e0 disponibile all&#8217;indirizzo http:\/\/&lt;server&gt;:&lt;port&gt;\/&lt;context&gt;\/gestioneLibri.wsdl.<\/p>\n<p style=\"color: #0d293f; text-align: justify;\">Nel prossimo articolo vedremo come gestire le chiamate ai servizi esposti.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dopo aver definito il contratto passiamo all&#8217;implementazione del nostro server con servizi SOA. Per fare ci\u00f2 usiamo Maven, che permette di automatizzare parte dei processi nella gestione del nostro sistema Per chi non conoscesse Maven rimando alla serie di articoli pubblicati nella sezione Documentazione. Apriamo una shell nella directory che ospita il nostro workspace e &hellip; <a href=\"http:\/\/www.valeriofinazzo.it\/wordpress\/2014\/06\/spring-ws-tutorial-3-creare-il-progetto\/\" class=\"more-link\">Continua la lettura di <span class=\"screen-reader-text\">SPRING WS &#8211; TUTORIAL 3 &#8211; CREARE IL PROGETTO<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[20],"tags":[21,22],"_links":{"self":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/102"}],"collection":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/comments?post=102"}],"version-history":[{"count":2,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/102\/revisions"}],"predecessor-version":[{"id":136,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/posts\/102\/revisions\/136"}],"wp:attachment":[{"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/media?parent=102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/categories?post=102"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.valeriofinazzo.it\/wordpress\/wp-json\/wp\/v2\/tags?post=102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}