2010-10-12 31 views
1

我有一個由Java構建的Web服務,並部署在名爲「GlassFish」和「JBoss」的兩個應用服務器上。現在,當我們從他們那裏獲取WSDL時,每個應用程序服務器都會生成不同的WSDL格式,即.NET wsdl.exe工具會生成不同的對象模型和代理類。所以我不能使用相同的客戶端.NET代碼來調用這兩個應用程序服務器Web服務。怎麼了?我該怎麼辦?爲什麼GlassFish和JBoss提供不同的WSDL?

謝謝。

回答

1

也許JAX-WS和JAXB的實現是不同的,因此產生不同的結果。您有兩種選擇:

  • 是WSDL優先。生成您的WSDL並將其用作服務的基礎。雖然
  • 將很難移動到這種範例,但將其中一個應用程序服務器中的相應JAR(jax-ws/jaxb)替換爲另一個應用程序服務器中的相應JAR(jax-ws/jaxb)。最好不要集中替換它們,而是配置應用程序服務器使用新的(GlassFish上把他們endorsed例如)

最終,我認爲這將是明智的,只使用一個應用程序服務器。像這樣的多個問題可能會出現。

+0

謝謝,我會嘗試。 – losingsleeep 2010-10-12 15:34:46

0

我敢打賭,一個正在使用Axis1庫,另一個正在使用Axis2,請檢查wsdl生成他們正在使用的wsdl規範(查看序言,wsdl開頭的部分)。順便說一下,您應該詳細研究wsdl規範,您的場景超出了您的技術知識範圍。

http://www.w3.org/TR/wsdl

http://www.w3.org/TR/wsdl20/

+0

謝謝,我會嘗試。 – losingsleeep 2010-10-12 15:35:34

相關問題