簡體   English   中英

在tomcat下的web應用程序中運行webservice jax-ws客戶端

[英]run webservice jax-ws client in a web app under tomcat

在我的例子中,所有服務類都擴展了javax.xml.ws.Service。

但真正的調用,因為我看到通過引擎蓋下的第三方庫工作。 在我的情況下,tomcat使用Axis2。

首先我要問一下, Tomcat用來運行Web服務的jar是什么

第二,有沒有辦法改變它們?

第三, 這個例外是什么意思? 它需要Tomcat / lib目錄中的另一個jar文件嗎?

在嘗試調用生成的Web服務客戶端時獲得此堆棧跟蹤:

17:23:21    12.05.2010      caused by: java.lang.NoClassDefFoundError: org/apache/axiom/om/OMNode
17:23:21    12.05.2010      at org.apache.axis2.deployment.DescriptionBuilder.buildOM(DescriptionBuilder.java:96)
17:23:21    12.05.2010      at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:79)
17:23:21    12.05.2010      at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:615)
17:23:21    12.05.2010      at org.apache.axis2.deployment.FileSystemConfigurator.getAxisConfiguration(FileSystemConfigurator.java:115)
17:23:21    12.05.2010      at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:64)
17:23:21    12.05.2010      at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContextFromFileSystem(ConfigurationContextFactory.java:180)
17:23:21    12.05.2010      at org.apache.axis2.jaxws.ClientConfigurationFactory.getClientConfigurationContext(ClientConfigurationFactory.java:51)
17:23:21    12.05.2010      at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:74)
17:23:21    12.05.2010      at org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:67)
17:23:21    12.05.2010      at org.apache.axis2.jaxws.spi.ServiceDelegate.(ServiceDelegate.java:84)
17:23:21    12.05.2010      at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:45)
17:23:21    12.05.2010      at javax.xml.ws.Service.(Service.java:56)

1 / Tomcat沒有默認的Web服務實現。 Axis2已放置在您在Tomcat中部署的webapp中,或直接放在Tomcat lib目錄中。 通常不建議使用第二種選擇。

讓我們假設你有使用Axis2版本1.4的webapp1和使用Axis2版本1.5的webapp2。 版本1.4和1.5具有不同的依賴關系,因此如果混合依賴項,Tomcat啟動時最終會出現類加載錯誤。

有關更多詳細信息,請參閱有關類加載的Tomcat文檔

2 /讓我們考慮您已將Axis2庫放置在Tomcat中部署的webapp中。 您可以使用Apache CXF或Sun JAX-WS RI代替Axis2。

如果要使用Sun JAX-WS RI,請確保將所有庫及其所有依賴項放在Web應用程序中。 Tomcat將使用他在webapp上下文中加載的實現。 如果tomcat / lib具有Axis2庫,則可能會產生類加載問題(請參閱1 /)。

3 / Axis2 1.5有一些依賴性。 似乎你的類路徑中缺少庫axiom-api-1.2.8.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM