Axis2错误 - java.lang.NoClassDefFoundError:org / apache / ws / commons / schema / XmlSchema

时间:2016-09-16 20:13:27

标签: java eclipse apache wsdl axis2

我正在尝试使用WSDL使用Axis 2(1.7.3)和tomcat服务器(V6.0)创建一个简单的Web服务,同时创建一个Web服务客户端我收到此错误,我已经通过更改服务器版本尝试了一切添加或删除一些jar文件,但似乎没有任何工作。

我已将XMLSchema核心 - 2.2.1 jar文件添加到lib文件夹并将其添加到项目构建路径,我还将XMLSchema文件添加到服务器配置文件夹,但似乎没有任何工作。我使用的是jdk 1.8.0版。较低版本它仍然无法工作,我正在使用Eclipse Neon。我不知道自己错过了什么。

以下是我在服务器端创建的WSDL:

<?xml version="1.0" encoding="UTF-8"?>

  <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

  <wsdl:port binding="impl:OperatorClassSoapBinding" name="OperatorClass">

     <wsdlsoap:address location="http://localhost:8080/Testwebservice/services/OperatorClass"/>

  </wsdl:port>

我添加了错误图片:

&LT; This is the error, I am getting again and again&GT;

5 个答案:

答案 0 :(得分:1)

  1. 使用AXIS 1.6.4(而不是最新的1.7.4)
  2. Tomcat 7
  3. Dynamic Web Project 2.5
  4. 将Axis 2运行时位置设置为1.6.4 - Eclipse - &gt;偏好 - &gt;网络服务 - &gt;轴2首选项

答案 1 :(得分:0)

您必须将xmlscema-core.jar添加到类路径中。您可以下载here

如果您使用maven,请添加以下依赖项

<!-- https://mvnrepository.com/artifact/org.apache.ws.commons.schema/XmlSchema -->
<dependency>
    <groupId>org.apache.ws.commons.schema</groupId>
    <artifactId>XmlSchema</artifactId>
    <version>1.4.7</version>
</dependency>

答案 2 :(得分:0)

这主要是由于缺少依赖性。 NoClassDefError是在加载相同类的多个版本或类路径不正确的情况下。 有很多方法可以解决这个问题:

  1. 逐个添加jar,直到传递依赖关系得到解决。
  2. 将AXIS Web应用程序li​​b目录中的所有jar保留为AXIS_LIB库的一部分,并将其添加为依赖项。
  3. 参考maven依赖项列表并添加具有正确版本和正确java / javac编译器级别和运行时的jar。参考:axis2 maven example
  4. 使用eclipse或SoapUI工具创建一个新项目,并从工具生成一个Web服务。这将为您生成依赖项和库。
  5. 希望这有帮助。

答案 3 :(得分:0)

在您的lib文件夹中添加woden-core-1.0M10.jar。

Maven:

<dependency>
    <groupId>org.apache.woden</groupId>
    <artifactId>woden-core</artifactId>
    <version>1.0M10</version>
</dependency>

答案 4 :(得分:-2)

使用较低的jdk版本。窗口>首选项> Java>已安装的JRE