我正在尝试将一个服务升级到Java 11。
我们目前使用wsdl2java(Apache CXF)根据WSDL生成源代码。我通过Maven完成所有操作。基于wsdl,源文件正确生成。
不幸的是,一些生成的源文件包括以下导入:
很不幸,无论我做什么,我的IDE似乎都找不到javax.xml.ws和javax.jws。是否有人知道我需要包含哪些依赖项才能获取这些包?
虽然它并不是问题的核心,但这是我的wsdl2java代码:
我们目前使用wsdl2java(Apache CXF)根据WSDL生成源代码。我通过Maven完成所有操作。基于wsdl,源文件正确生成。
不幸的是,一些生成的源文件包括以下导入:
import javax.xml.ws.WebFault;
import javax.jws.WebService;
我缺少javax.xml.ws和javax.jws这些包。
在我的研究中,我发现Jaxb已经被从主要的JDK中弃用,因此我需要在我的POM文件中添加新的依赖项。我尝试了各种组合,但最终都变成了这样:
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-core</artifactId>
<version>2.3.0.1</version>
</dependency>
<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.3.2</version>
</dependency>
很不幸,无论我做什么,我的IDE似乎都找不到javax.xml.ws和javax.jws。是否有人知道我需要包含哪些依赖项才能获取这些包?
虽然它并不是问题的核心,但这是我的wsdl2java代码:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.3.2</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated-sources/cxf/</sourceRoot>
<wsdlRoot>src/main/webapp/resources/wsdl/fedex</wsdlRoot>
<includes>
<include>**/*.wsdl</include>
</includes>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
是的,我正在生成一个FedEx客户端。