[英]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.