我在使用Apache Axis 2 1.7.4和Eclipse Neon 4.6.3RC3生成SOAP Web服务客户端时遇到了一个问题。
我生成Web服务客户端的方式是:
我得到的错误是:
java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchema
尽管StackOverflow上有很多关于这个问题的答案,但是没有人能真正为我解决这个问题,所以我想我会分享解决了我的问题的原因(以及其他提议的解决方案的摘要)希望将来这个帖子会帮助别人。
如果有人想将他的知识添加到这篇文章中,请继续发表评论/回答。
答案 0 :(得分:1)
<强> 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>
来源:https://stackoverflow.com/a/36497872/4921205
如果您不使用Maven,可以下载库并手动将它们添加到类路径中。
重要提示:由于某些原因,即使添加新库,您也需要在选择新库之前重新启动Eclipse。
<强> 2。使用Axis2 1.6.x
由于这似乎是Axis2 1.7.x
中引入的错误,另一种可能的解决方案可能是尽可能使用1.6.x
jar。
第3。将动态Web模块项目方面还原为版本2.3
这实际上是我的伎俩。该项目使用的是动态Web模块2.5方面,而且这个Axis版本似乎无法正常工作(我知道3.0有问题)。切换到2.3后只生成一个开发客户端。这是如何做到的:
答案 1 :(得分:0)
从$ AXIS2_HOME / lib手动将 xmlschema-core-2.2.1.jar 复制到Eclipse项目目录 WebContent / WEB-INF / lib ,关闭并重新打开eclipse生成Web服务客户端之前。