2012-12-10 60 views
5

我想知道是否可以使用Spring Web Services從WSDL文件創建Web服務客戶端是否可以使用Spring-WS從WSDL文件創建WS-client? (好像不是)

我的意思是從非常WSDL,我暫時沒有任何XSD。

但我讀過Josh Long的「Spring Recipes A Problem-Solution Approach」,Hamidreza Sattari的「Spring Web Services 2 Cookbook」和教程本身(6. Using Spring Web Services on the Client),並且沒有提及此功能。

我也讀過其他帖子,如Webservice-Client: Common approach with Spring WS, JAXB and just one WSDL file?Spring-ws client from WSDL(這裏在stackoverflow),但沒有任何進一步的結果。

我甚至要求在春季論壇的問題,但超過60後沒有任何反應寫着:Is it possible to create a WS-client from WSDL file using SWS? (It seems not)

也許這是不可能的。

謝謝。

+0

當你說「創建一個WS客戶端」時,你是什麼意思?因爲您可以使用WebServiceTemplate類在SOAP消息中包裝任何您想要的東西。我懷疑你真的在考慮創建客戶端可以使用的POJO類。如果你在WSDL中有'type'部分,那麼你可以通過XJC編譯器運行這個WSDL,並讓你的類離開。 – kdgregory

+0

¿沒有更多結果?你在這個過程中發現了什麼錯誤?你有什麼嘗試?請顯示一些代碼。 – Alfabravo

+0

謝謝@kdgregory,我的意思是我想[發送和接收POJO:編組和解組](http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html #d5e1811),所以XJC就是我所需要的。 感謝Alfabravo,對我的問題表現出興趣。我唯一的問題是如kdgregory所說的那樣產生POJO。我可以[發送帶有WebServiceTemplate的WebServiceMessage](http://static.springsource.org/spring-ws/sites/2.0/reference/html/client.html#d5e1787),但是可以使用靜態String消息(用於創建使用StreamSource一個StringReader)不是我想要的。 – jbbarquero

回答

14

你可以這樣來做:

  1. 生成您使用自帶的JDK分佈的XJC工具Java類型 - xjc -wsdl file.wsdl

  2. 然後使用生成的Java類型,使用WebserviceTemplate,描述here來創建客戶端。

+0

我不知道-wsdl選項(實際上我習慣與maven一起工作,所以我通常使用一些插件作爲jaxb2-maven-plugin來調用XJC,但沒有深入挖掘細節) 謝謝@Biju Kunjummen爲我展示正確的選擇。 明天我會試試看。 – jbbarquero

+0

你仍然可以使用maven插件來生成基於wsdl的類,檢查[此選項](http://mojo.codehaus.org/jaxb2-maven-plugin/xjc-mojo.html#wsdl)。 – evandongen

+0

出於好奇 - 你知道如何從eclipse生成xjc -wsdl命令嗎?我創建了一個eclipse項目,右鍵單擊wsdl文件,查看「Web Services」菜單下的不同選項,但沒有一個看起來是正確的。 – IcedDante

相關問題