spring jvm从jdk 8升级到jdk 17时Apache CXF的影响

au9on6nz  于 2023-04-04  发布在  Spring
关注(0)|答案(1)|浏览(579)

我正在将我的微服务从jdk8迁移到jdk17。作为迁移的一部分,spring cloud和spring Boot 依赖项已经从2.0更新到3.1。
我有一个soap客户端可以从rest API访问,soap客户端是使用Apache CXF和crypto构建的。我面临着soap客户端调用的问题,因为客户端没有使用CXF生成的代码调用服务。
当jvm从8迁移到17时,CXF是否需要更改?

<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>target/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>                                    <wsdl>/src/main/resources/wsdl/Test.wsdl</wsdl>                                 <wsdlLocation>classpath:wsdl/Test.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>`
myzjeezk

myzjeezk1#

我能够确定soap客户端失败的原因。Apache CXF显式地需要jaxws-rt或jax-ws-ri依赖项,以便在JDK 11之后进行soap调用。在JDK 11之前,Apache CXF提供了jaxws类(HttpClientTransport)作为CXF依赖项的一部分。
这个问题的解决方案是在运行时包含jaxws-rt和jaxws-ri依赖项,这解决了我的问题。

相关问题