我目前正在尝试从Java 8项目迁移到Java12。(希望如此)最后一个障碍是我们不得不使用的旧WebService。在Java 8本身中按原样使用WebService并不是问题,它已经工作了很多年。
wsdl指出:
内置2006年4月22日->
据我所知,WSDL2JAVA的新版本不再支持这种类型的服务(因为它们依赖于Axis 2):
WSDLToJava错误:CXF不支持Rpc /编码的wsdls
要使此服务(在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不得不改用 jakarta 是正确的。 由于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>
只需将其添加到新的Java 12项目中,就会使 org.w3c.dom。* (例如Document)无法使用。
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。*。