【问题标题】:Axis2 Soap WS client: java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchemaAxis2 Soap WS 客户端:java.lang.NoClassDefFoundError:org/apache/ws/commons/schema/XmlSchema
【发布时间】:2018-04-22 10:13:42
【问题描述】:

我今天在使用 Apache Axis 2 1.7.4 和 Eclipse Neon 4.6.3RC3 生成 SOAP Web 服务客户端时遇到了问题。

我生成 Web Service 客户端的方式是:

  1. 右键单击我的 WSDL >“Web 服务”>“生成客户端”
  2. 选择“Apache Axis2”作为 Web Service Runtime,选择“Tomcat 7”作为 Server Runtime(所有其他选项均为默认值)
  3. 点击“完成”

我得到的错误是:

java.lang.NoClassDefFoundError: org/apache/ws/commons/schema/XmlSchema

虽然 StackOverflow 上有很多关于这个问题的答案,但没有一个能真正为我解决这个问题,所以我想我会分享解决我的问题的方法(以及其他建议解决方案的摘要),希望将来能解决这个问题帖子会对某人有所帮助。

如果有人想在这篇文章中添加他的知识,请继续发表评论/答案。

【问题讨论】:

    标签: java apache web-services soap axis2


    【解决方案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. 右键单击项目->“属性”->“项目构面”
    2. 选择“动态 Web 模块”的版本并从右侧下拉菜单中将其设置为 2.3(如果此窗口为空,您可能需要通过单击同一窗口中提供的链接将项目转换为多面形式)。李>
    3. 右键单击您的 WSDL ->“Web 服务”->“生成客户端”

    1. 通过向下拖动左侧的仪表设置“仅开发客户端”选项,设置您的服务器运行时并选择 Axis2 作为您的 Web 服务运行时。

    2. 单击“完成”,您应该会看到在 src 文件夹下生成了 Web 服务客户端。

    【讨论】:

      【解决方案2】:

      手动将$AXIS2_HOME/lib中的xmlschema-core-2.2.1.jar复制到Eclipse项目目录WebContent/WEB-INF/lib,关闭并重新打开eclipse在生成 Web 服务客户端之前。

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-04
      • 1970-01-01
      相关资源
      最近更新 更多