2012-12-10 14 views
5

Mi piacerebbe sapere se è possibile creare client di servizi Web da un file WSDL utilizzando Spring Web Services.È possibile creare un client WS dal file WSDL usando Spring-WS? (Non sembra)

Intendo proprio dal WSDL, per il momento non ho XSD.

Ma ho letto "Ricette di primavera un approccio alla soluzione dei problemi" di Josh Long, "Cookbook di Spring Web Services 2" di Hamidreza Sattari e il tutorial stesso (6. Using Spring Web Services on the Client) e non c'è alcun riferimento a questa funzione.

Ho anche letto altri post, come Webservice-Client: Common approach with Spring WS, JAXB and just one WSDL file? o Spring-ws client from WSDL (qui su StackOverflow) ma senza ulteriori risultati.

Ho anche chiesto la questione al forum di primavera, ma nessuna risposta dopo più di 60 si legge: Is it possible to create a WS-client from WSDL file using SWS? (It seems not)

Forse non è possibile.

Grazie.

+0

Cosa intendi quando dici "creare un client WS"? Perché è possibile utilizzare la classe WebServiceTemplate per racchiudere tutto ciò che si desidera in un messaggio SOAP. Sospetto che tu stia davvero pensando di creare classi POJO che il cliente può utilizzare. Se hai una sezione 'type' nel WSDL, puoi eseguire quel WSDL attraverso il compilatore XJC e ottenere le tue classi. – kdgregory

+0

¿Non ci sono altri risultati? Quali errori hai trovato nel processo? Che cosa hai provato? Mostra del codice, per favore. – Alfabravo

+0

Grazie a @kdgregory, quello che intendevo veramente è che voglio [Inviare e ricevere POJO: marshalling e unmarshalling] (http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html # d5e1811), quindi XJC è ciò di cui ho bisogno. Grazie anche ad Alfabravo, per mostrare interesse per il mio problema. Il mio unico problema era generare i POJO come diceva kdgregory. Potrei [inviare un WebServiceMessage con WebServiceTemplate] (http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html#d5e1787), ma il messaggio String statico (per creare un StreamSource usando un StringReader) non era quello che volevo. – jbbarquero

risposta

14

Si può fare in questo modo:

  1. generare i tipi Java con lo strumento xjc che viene fornito con le distribuzioni JDK - xjc -wsdl file.wsdl

  2. quindi utilizzando i tipi di Java generato, utilizzare WebserviceTemplate, descritti here per creare il client.

+0

Non conoscevo l'opzione -wsdl (in realtà sono abituato a lavorare con maven, quindi di solito uso qualche plugin come jaxb2-maven-plugin per chiamare XJC, senza scavare ulteriormente nei dettagli) Grazie @Biju Kunjummen per avermi mostrato l'opzione corretta. Domani ci proverò. – jbbarquero

+0

Puoi ancora usare il plugin maven per generare classi basate su wsdl, controlla [questa opzione] (http://mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html#wsdl). – evandongen

+0

Per curiosità: sai come generare il comando xjc -wsdl da eclissi? Ho creato un progetto eclipse, fatto clic destro sul file wsdl e ho esaminato le diverse opzioni nel menu "Servizi Web", ma nessuno di loro sembrava giusto. – IcedDante

Problemi correlati