繁体   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