2012-12-10 5 views
5

Ich würde gerne wissen, ob es möglich ist, Web Services-Client aus einer WSDL-Datei mit Spring Web Services zu erstellen.Ist es möglich, einen WS-Client aus der WSDL-Datei mit Spring-WS zu erstellen? (Es scheint nicht)

Ich meine von der sehr WSDL, ich habe keine XSD vorerst.

Aber ich habe gelesen Josh Long "Frühlingsrezepte ein Problem-Lösungs-Ansatz", Hamidreza Sattari "Spring Web Services 2 Kochbuch" und das Tutorial selbst (6. Using Spring Web Services on the Client) und es gibt keinen Hinweis auf diese Funktion.

Ich habe auch andere Beiträge gelesen, wie Webservice-Client: Common approach with Spring WS, JAXB and just one WSDL file? oder Spring-ws client from WSDL (hier bei stackoverflow) aber ohne weitere Ergebnisse.

Ich habe sogar gefragt, die Frage im Spring-Foren, aber keine Antworten nach mehr als 60 lesen: Is it possible to create a WS-client from WSDL file using SWS? (It seems not)

Vielleicht nicht möglich ist es.

Danke.

+0

Was meinen Sie, wenn Sie "einen WS-Client erstellen" sagen? Da Sie die WebServiceTemplate-Klasse verwenden können, um beliebige Elemente in eine SOAP-Nachricht zu integrieren. Ich vermute, dass Sie wirklich darüber nachdenken, POJO-Klassen zu erstellen, die der Client verwenden kann. Wenn Sie in der WSDL einen 'type'-Abschnitt haben, können Sie diese WSDL über den XJC-Compiler ausführen und Ihre Klassen herausholen. – kdgregory

+0

¿Keine weiteren Ergebnisse? Welche Fehler haben Sie dabei festgestellt? Was hast du probiert? Bitte Code anzeigen. – Alfabravo

+0

Dank @kdgregory, was ich wirklich meinte, ist, dass ich [Senden und Empfangen von POJOs: Marshalling und Unmarshalling] (http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html # d5e1811), also XJC ist was ich brauche. Danke auch an Alfabravo, um Interesse an meiner Ausgabe zu zeigen. Mein einziges Problem war, die POJOs zu generieren, wie kdgregory sagte. Ich könnte [eine WebServiceMessage mit WebServiceTemplate senden] (http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html#d5e1787), aber die statische String-Nachricht (zum Erstellen einer StreamSource mit ein StringReader) war nicht was ich wollte. – jbbarquero

Antwort

14

Sie können es auf diese Weise tun:

  1. Generieren Sie Ihre Java-Typen die xjc-Tool, das mit den JDK-Distributionen kommt - xjc -wsdl file.wsdl

  2. dann die erzeugten Java-Typen verwenden, verwenden WebserviceTemplate, beschrieben here um den Client zu erstellen.

+0

Ich kannte die Option -wsdl nicht (eigentlich bin ich gewohnt, mit Maven zu arbeiten, also arbeite ich normalerweise mit einem Plugin als jaxb2-maven-plugin, um XJC aufzurufen, ohne weitere Details zu beachten) Danke @Biju Kunjummen um mir die richtige Option zu zeigen. Morgen werde ich es versuchen. – jbbarquero

+0

Sie können immer noch das Maven-Plugin verwenden, um Klassen basierend auf dem wsdl zu generieren, überprüfen Sie [diese Option] (http://mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html#wsdl). – evandongen

+0

Aus Neugier - wissen Sie, wie man den Befehl xjc -wsdl von Eclipse erzeugt? Ich habe ein Eclipse-Projekt erstellt, mit der rechten Maustaste auf die WSDL-Datei geklickt und mir die verschiedenen Optionen im Menü "Web Services" angesehen, aber keines davon schien richtig zu sein. – IcedDante

Verwandte Themen