无法使用 axis2 实例化 ADBDataSource 类型

Cannot instantiate the type ADBDataSource using axis2

使用Eclipse EE和Eclipse Axis2 Code Generator插件后,我得到了两个 操作生成 java 个具有相同错误的文件:

Cannot instantiate the type ADBDataSource   ConcatRequest.java  
Cannot instantiate the type ADBDataSource   ConcatResponse.java

这是问题所在:

org.apache.axiom.om.OMDataSource dataSource = new
org.apache.axis2.databinding.ADBDataSource(this,MY_QNAME);

此代码同时出现在 ConcatRequest.java 和 ConcatResponse.java 和 导致错误。我看到 ADBDataSource 是抽象的,无法实例化。

我是 Axis 的新手,我不知道如何解决这个问题。请帮忙

由于 axis2-adb 的版本不匹配,我遇到了这个问题。处理这个问题最安全的方法是查看 eclipse 插件的 lib 文件夹 (eclipse/(dropins|plugins)/ ... .jar)。然后查找依赖项的版本并将它们(您实际需要的)包含在您的构建路径中。

老话题,但我正在处理一个包含多个子项目的遗留项目。 在其中一个子项目中,我遇到了同样的消息。 这也是一个版本问题(Maven 依赖项...)。

  • 在 "ADBDataSource" 上按住 Ctrl 并单击(在 Eclipse/IntelliJ 中)。是哪个版本?对我来说是 1.5.6,但在我的 pom.xml 中只有

<dependency>
 <groupId>org.apache.axis2</groupId>
 <artifactId>axis2</artifactId>
 <version>1.7.4</version>
</dependency>

  • 但是,这个子项目依赖于另一个使用 1.5.6 的子项目(我通过使用 Notepad++ "Search / Find in Files" 菜单选项在整个项目中搜索“1.5.6”找到了它)。
  • 然后在对另一个项目的依赖中,我排除了 1.5.6 :

 <dependency>
  <groupId>com.group.id</groupId>
  <artifactId>anotherproject</artifactId>
  <version>version</version>
  <exclusions>
   <exclusion>
    <groupId>org.apache.axis2</groupId>
    <artifactId>axis2</artifactId>
   </exclusion>
  </exclusions>
 </dependency>

  • 添加排除后,项目确实使用了1.7.4版本

我在从 WSDL 生成 JAVA 存根时遇到了同样的问题。以下是我用来解决问题的步骤:

  1. 按照以下 link 生成存根:https://support.pcmiler.com/en/support/solutions/articles/19000053078-java-client-axis2-code-generator-for-eclipse

现在对此 link 进行了一些小调整。在完成上述 link 中提到的第 10 和 11 点之后,仅使用 axis2-1.7.9 生成存根,并且在生成存根时使用 \axis2-1.7.9\lib 中提到的罐子在你的构建路径中。

希望这能解决您的问题。