【问题标题】:Axis2 Error - java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchemaAxis2 错误 - java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchema
【发布时间】:2016-09-16 20:13:27
【问题描述】:

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

我已将 XMLSchema core - 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>

我已经添加了错误的图片:

This is the error, I am getting again and again>.

【问题讨论】:

    标签: java eclipse apache wsdl axis2


    【解决方案1】:

    您必须将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>
    

    【讨论】:

    • 我已经将 xmlschema-core.jar 文件添加到类路径中。仍然以某种方式重新启动 Eclipse 后它没有给我同样的错误,但仍然给出错误,它是“在 WSDL 的代码生成期间发生异常:org.apache.axis2.AxisFault:消息 addRequest 的多个部分”
    • 如果您现在知道上述错误的解决方案,请帮忙。
    • 然后在您使用您所说的依赖项更新您的 pom.xml 之后,我们必须在上下文菜单“运行方式”中运行“Maven 安装”。它会解决我的麻烦。非常感谢你,我的朋友。上帝保佑你
    【解决方案2】:
    1. 使用 AXIS 1.6.4(而不是最新的 1.7.4)
    2. 雄猫 7
    3. 动态 Web 项目 2.5
    4. 将 Axis 2 运行时位置设置为 1.6.4 - Eclipse -> 首选项 -> Web 服务 -> Axis 2 首选项

    【讨论】:

      【解决方案3】:

      这主要是由于缺少依赖项。 NoClassDefError 是当加载了同一个类的多个版本或类路径不正确时。 有很多方法可以解决这个问题:

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

      希望这会有所帮助。

      【讨论】:

      • 我已经多次应用第四个选项,它根本没有帮助。我没有使用maven,。我不完全理解您的第一点和第二点,这是否意味着将 jar 文件逐个添加到类路径?因为只有 xmlschema-core 文件不在 lib 文件夹中。
      • 它将起作用:),首先Axis2服务器和客户端之间存在差异。据我了解,您想创建服务器和主机服务。您需要为服务器配置 AXIS_JARS。您可以参考我共享的示例并将这些 jars 添加到类路径和 lib。如果这令人困惑,您也可以直接使用 Axis2 war 文件。导入 war 文件并在其上添加您的更改。
      【解决方案4】:

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

      马文:

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

      【讨论】:

        【解决方案5】:

        使用较低的 jdk 版本。 Window>Preferences>Java>Installed JREs

        【讨论】:

        • 通常,不希望降级到较低的 JDK 版本,并且 Java 向后兼容,也不应该是必要的。如果您认为在这种情况下降级 JDK 确实有帮助,那么如果您使用下面的 edit 链接在答案中包含原因,那就太好了。
        猜你喜欢
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-07
        • 2021-05-20
        • 2017-01-19
        相关资源
        最近更新 更多