2012-08-31 99 views
7

我有一個關於生成Java工件與wsimport工具(Maven的JAX-WS)問題的最佳實踐代碼 - 包裝代碼

當我生成WSDL的Java工件,我想收拾Web服務項目作爲WAR文件,其客戶端作爲JAR文件。

何處放置生成的工件以及放置WSDL的位置? 關於組織Web服務項目的最佳做法是什麼?

預先感謝您!

最好的問候, 尤里察Krizanic

回答

3

的文物將被要求在客戶端和服務器端,以便收拾他們在第三個罐子,並將其設置爲既依賴。 WSDL應該進入戰爭的WEB-INF文件夾,@WebService@WebServiceClient的屬性wsdlLocation應該被設置爲反映它的路徑。

+0

由於爲答案。你知道把WSDL放在war文件的什麼位置嗎?我有一些wsdl加載問題... –

+0

@JuricaKrizanic編輯我的答案。 – zeller

+0

由wsimport生成的代碼是否與服務器端和客戶端相同? –

1

託管服務的包裝選項在JSR 109的定義:Web Services for Java EE, Version 1.3

服務:

5.4.2 EJB組件封裝

...的EJB-JAR 文件中的Web服務部署描述符的位置是META-INF/webservices.xml。 wsdl目錄位於 META-INF/wsdl

5.4.3 Web應用程序模塊封裝

...一個Web服務部署描述符位於一個WAR在 WEB-INF/webservices.xml和WSDL目錄位於 WEB-INF/wsdl

對於客戶:

客戶端可以是下列任何一項:Java EE應用程序客戶端,Web組件,EJB組件或其他Web服務。

的 模塊中的Web服務客戶端部署描述符的位置與特定模塊。 WSDL文件相對於根模塊的 被定位並且通常位於所述wsdl目錄是 共同位於與模塊部署描述符或 它的子目錄。

請注意,此規範自身限制的Java EE客戶端;這並不意味着您不能在顯式提供WSDL的地方使用unmanaged client

交叉引用這些規格爲更詳細地: