2011-04-05 57 views
3

我正在閱讀JAX-WS。何時使用wsgen?

我已經使用Eclipse和手工成功構建了JAX-WS RI服務。兩種方法都使用apt。在通過Eclipse將應用程序部署到應用程序服務器或創建一個war(帶或不帶sun-jaxws.xml,取決於正在使用的容器)並手動部署它時,JAX-WS運行時將生成相應的WSDL自動。

什麼時候使用wsgen有用?

+0

你使用的'apt'是什麼? – bmargulies 2011-04-05 23:49:18

+0

@bmargulies - apt是'annotation processing tool';它會生成編組/請求和響應SOAP消息的服務器端存根控件。 – wulfgarpro 2011-04-06 00:05:23

回答

4

wsgen生成響應和請求包裝類,並且如您所述,可以生成WSDL。有些容器,如CXF,根本不需要這些包裝類 - 它們在運行中生成它們。或者,你可能已經爲自己創造了它們,或者,我猜也可以。

This link說明。

JAX-WS RI提供了一些apt工廠,並建議運行APT來生成一些代碼。

事實上,我認爲http://jax-ws.java.net/nonav/2.1.1/docs/jaxws-tools.html#mozTocId344067可能是您的原始問題的金標準答案。有點擴展:JAX-WS(標準)和JAX-WS(參考實現)是兩個不同的東西。如果您使用Java 1.6或Metro或CXF等內置的RI,則會遇到不同的工具和需求。例如,在CXF中,對於Java優先服務,您根本不需要運行任何工具。

如果您需要將其發送給其他人,並且您不想啓動該服務並使用?wsdl API,那麼從命令行生成wsdl可能會有所幫助。

該標準不要求使用任何工具,但標準允許符合標準的實現使用工具。呼!

+0

感謝您的解釋。似乎這些工具中的一些在功能上重疊。也許不同的Web服務棧出於同樣的原因分發不同的工具。因此,wsgen是生成請求/響應類的推薦工具,爲什麼我會想要將WSDL生成爲便攜式工件? – wulfgarpro 2011-04-06 02:57:50