无法使用axis2实例化类型ADBDataSource

问题描述 投票:2回答:3

使用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完全不熟悉,我不知道如何解决这个问题。请帮忙。

java eclipse axis2
3个回答
3
投票

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


1
投票

老话题,但我正在研究一个有几个子项目的遗留项目。在其中一个子项目中,我遇到了同样的信息。它也是一个版本问题(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>
  • 但是,这个子项目依赖于另一个子项目,WAS使用1.5.6(我通过使用Notepad ++“在文件中搜索/查找”菜单选项在整个项目中搜索“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版本。

0
投票

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

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

现在这个链接有一个小小的调整。在执行上述链接中提到的10号和11号点之后,仅使用axis2-1.7.9生成存根,并在生成它们时使用构建路径中\ axis2-1.7.9 \ lib中提到的jar。

希望这能解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.