2012-12-10 14 views
5

Chciałbym wiedzieć, czy można utworzyć klienta usług WWW z pliku WSDL przy użyciu Spring Web Services.Czy można utworzyć klienta WS z pliku WSDL przy użyciu Spring-WS? (Wydaje się, że nie)

To znaczy z samego WSDL, na razie nie mam żadnego XSD.

Ale zapoznałem się z "Wiosennymi przepisami", "Hamidreza Sattari" "Wiosenna Web Services 2 Cookbook" i samouczkiem (6. Using Spring Web Services on the Client) i nie ma żadnego odniesienia do tej funkcji.

Czytałem również inne posty, takie jak Webservice-Client: Common approach with Spring WS, JAXB and just one WSDL file?, lub Spring-ws client from WSDL (tutaj na stackoverflow), ale bez żadnych dalszych wyników.

Mam jeszcze zadał pytanie na forum wiosny, ale nie ma odpowiedzi po ponad 60 brzmi: Is it possible to create a WS-client from WSDL file using SWS? (It seems not)

Może to nie jest możliwe.

Dzięki.

+0

Co masz na myśli mówiąc "utwórz klienta WS"? Ponieważ możesz użyć klasy WebServiceTemplate, aby zawinąć wszystko, co chcesz, w komunikacie SOAP. Podejrzewam, że naprawdę myślisz o tworzeniu klas POJO, z których klient może korzystać. Jeśli masz sekcję 'type' w WSDL, możesz uruchomić ten WSDL za pomocą kompilatora XJC i uzyskać klasy. – kdgregory

+0

¿Brak dalszych wyników? Jakie błędy wykryłeś w procesie? Co próbujesz? Pokaż trochę kodu, proszę. – Alfabravo

+0

Dzięki @kdgregory, naprawdę chodzi mi o to, że chcę [Wysyłać i odbierać POJO: stawianie i rozprowadzanie wiadomości] (http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html # d5e1811), więc XJC jest tym, czego potrzebuję. Dziękuję również Alfabravo za okazanie zainteresowania moim problemem. Jedynym moim problemem było wygenerowanie POJO, jak powiedział kdgregory. Mogę [wysłać WebServiceMessage z WebServiceTemplate] (http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html#d5e1787), ale statyczną wiadomość String (do tworzenia StreamSource za pomocą StringReader) nie było tym, czego chciałem. – jbbarquero

Odpowiedz

14

Można zrobić to w ten sposób:

  1. wygenerować typy Java z wykorzystaniem narzędzia XJC że pochodzi z rozkładami JDK - xjc -wsdl file.wsdl

  2. następnie za pomocą wygenerowanych typów Java, użyj WebserviceTemplate, opisane here, aby utworzyć klienta.

+0

Nie znałem opcji -wsdl (w rzeczywistości jestem przyzwyczajony do pracy z mavenem, więc zwykle używam wtyczki jako jaxb2-maven-plugin do wywoływania XJC, bez dalszego zagłębiania się w szczegóły) Dzięki @Biju Kunjummen za pokazanie mi właściwej opcji. Jutro spróbuję. – jbbarquero

+0

Nadal można używać wtyczki maven do generowania klas na podstawie wsdl, sprawdź [ta opcja] (http://mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html#wsdl). – evandongen

+0

Z ciekawości - czy wiesz, jak wygenerować polecenie xjc -wsdl z Eclipse? Stworzyłem projekt zaćmienia, kliknąłem prawym przyciskiem myszy na pliku wsdl i spojrzałem na różne opcje w menu "Usługi internetowe", ale żadne z nich nie wydawało się właściwe. – IcedDante

Powiązane problemy