Java 12 上的 Apache Axis 1.4
Apache Axis 1.4 on Java 12
我目前正在尝试从 Java 8 项目迁移到 Java 12。(希望)最后一个障碍是我们被迫使用的旧 WebService。使用Java 8 中的WebService 'as is' 本身没有问题,它已经工作了很多年。
wsdl 声明:
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 -->
据我所知,WSDL2JAVA 的新版本不再支持此类服务(因为它们依赖于 Axis 2):
WSDLToJava Error: Rpc/encoded wsdls are not supported with CXF
要使此服务可用(Java 8 和 12),我需要以下库:
<!-- https://mvnrepository.com/artifact/javax.xml.rpc/javax.xml.rpc-api -->
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>javax.xml.rpc-api</artifactId>
<version>1.1.2</version>
</dependency>
这就是问题所在。该库定义了部分包 javax.xml,由于它是 Java 系统路径,因此不再允许。有什么建议或解决方法吗?我是不是忽略了什么?
编辑:ZhekaKozlov 关于必须切换到 雅加达 的说法是正确的。
现在还有一个错误,因为Axis2,项目中也是需要的。
<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-kernel -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.7.9</version>
</dependency>
只需将其添加到新的 Java12 项目中,org.w3c.dom.*(例如文档)将无法使用。
EDIT2:我终于让一切正常了。该程序是 运行,代码中没有任何错误。不幸的是,我无法测试应用程序的 Axis 部分,因为它连接到的服务只能在我们客户的环境中使用,因此必须对其进行测试。
在 axis2 和 axis2-adb 上,我不得不排除两个库:
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-stax-api_1.0_spec</artifactId>
</exclusion>
<exclusion>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
</exclusion>
</exclusions>
他们分别阻止了 org.w3c.dom.* 和 javax.xml.stream.*。
由于 Java EE 已更名为 Jakarta EE,您应该使用新工件:
<dependency>
<groupId>jakarta.xml.rpc</groupId>
<artifactId>jakarta.xml.rpc-api</artifactId>
<version>1.1.4</version>
</dependency>
新工件不再包含拆分包。
我目前正在尝试从 Java 8 项目迁移到 Java 12。(希望)最后一个障碍是我们被迫使用的旧 WebService。使用Java 8 中的WebService 'as is' 本身没有问题,它已经工作了很多年。
wsdl 声明:
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 -->
据我所知,WSDL2JAVA 的新版本不再支持此类服务(因为它们依赖于 Axis 2):
WSDLToJava Error: Rpc/encoded wsdls are not supported with CXF
要使此服务可用(Java 8 和 12),我需要以下库:
<!-- https://mvnrepository.com/artifact/javax.xml.rpc/javax.xml.rpc-api -->
<dependency>
<groupId>javax.xml.rpc</groupId>
<artifactId>javax.xml.rpc-api</artifactId>
<version>1.1.2</version>
</dependency>
这就是问题所在。该库定义了部分包 javax.xml,由于它是 Java 系统路径,因此不再允许。有什么建议或解决方法吗?我是不是忽略了什么?
编辑:ZhekaKozlov 关于必须切换到 雅加达 的说法是正确的。 现在还有一个错误,因为Axis2,项目中也是需要的。
<!-- https://mvnrepository.com/artifact/org.apache.axis2/axis2-kernel -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-kernel</artifactId>
<version>1.7.9</version>
</dependency>
只需将其添加到新的 Java12 项目中,org.w3c.dom.*(例如文档)将无法使用。
EDIT2:我终于让一切正常了。该程序是 运行,代码中没有任何错误。不幸的是,我无法测试应用程序的 Axis 部分,因为它连接到的服务只能在我们客户的环境中使用,因此必须对其进行测试。 在 axis2 和 axis2-adb 上,我不得不排除两个库:
<exclusions>
<exclusion>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-stax-api_1.0_spec</artifactId>
</exclusion>
<exclusion>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
</exclusion>
</exclusions>
他们分别阻止了 org.w3c.dom.* 和 javax.xml.stream.*。
由于 Java EE 已更名为 Jakarta EE,您应该使用新工件:
<dependency>
<groupId>jakarta.xml.rpc</groupId>
<artifactId>jakarta.xml.rpc-api</artifactId>
<version>1.1.4</version>
</dependency>
新工件不再包含拆分包。