Axis2 Soap WS客户端:java.lang.NoClassDefFoundError:org/apache/WS/commons/schema/XmlSchema
我今天在使用ApacheAxis2 1.7.4和EclipseNeon 4.6.3RC3生成SOAP Web服务客户端时遇到了一个问题 我生成Web服务客户端的方式是:Axis2 Soap WS客户端:java.lang.NoClassDefFoundError:org/apache/WS/commons/schema/XmlSchema,java,apache,web-services,soap,axis2,Java,Apache,Web Services,Soap,Axis2,我今天在使用ApacheAxis2 1.7.4和EclipseNeon 4.6.3RC3生成SOAP Web服务客户端时遇到了一个问题 我生成Web服务客户端的方式是: 右键单击我的WSDL>“Web服务”>“生成客户端” 选择“ApacheAxis2”作为Web服务运行时,选择“Tomcat7”作为服务器运行时(所有其他选项都是默认值) 点击“完成” 我得到的错误是: java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/Xm
java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchema
虽然关于StackOverflow这个问题有很多答案,但没有一个能真正为我解决这个问题,所以我想我会分享解决我问题的方法(以及其他建议解决方案的总结),希望将来这篇文章能帮助一些人
如果有人想在这篇文章中添加他的知识,请继续并留下评论/答案。1。添加缺少的XML架构依赖项 在许多情况下,这似乎与缺少对项目的依赖性有关。缺少的依赖项似乎是
xmlschema-core-2.2.1.jar
。您可以将其添加到Maven项目中,如下所示:
<dependency>
<groupId>org.apache.ws.xmlschema</groupId>
<artifactId>xmlschema-core</artifactId>
<version>2.2.1</version>
</dependency>
org.apache.ws.xmlschema
如果您没有使用Maven,可以下载这些库并手动将它们添加到类路径中
重要注意事项:出于某些原因,即使添加了新库,也需要在获取新库之前重新启动Eclipse
2。使用Axis2 1.6.x
由于这似乎是在Axis2 1.7.x
中引入的一个bug,如果可能的话,另一个可能的解决方案可能是使用1.6.x
jar
3。将动态Web模块项目方面恢复为2.3版
这才是我真正的秘诀。该项目使用的是DynamicWebModule2.5方面,而这似乎不能与Axis版本一起正常工作(我知道3.0有问题)。切换到2.3后,只生成一个开发客户机。以下是如何做到这一点:
右键单击项目->“属性”->“项目方面”
选择“Dynamic Web Module”的版本,并从右侧下拉列表中将其设置为2.3(如果此窗口为空,则您可能需要通过单击同一窗口中提供的链接以刻面形式转换项目)
右键单击WSDL->“Web服务”->“生成客户端”
通过拖动左侧的仪表来设置“仅开发客户端”选项,设置服务器运行时并选择Axis2作为Web服务运行时
单击“Finish”,您将看到在src
文件夹下生成的Web服务客户端
手动将xmlschema-core-2.2.1.jar从$AXIS2_HOME/lib复制到Eclipse项目目录WebContent/WEB-INF/lib,在生成WEB服务客户端之前关闭并重新打开Eclipse