如何让 cxf-codegen-plugin 从 jakarta.xml.ws 生成 Web 服务?
How make cxf-codegen-plugin generate Webservices from jakarta.xml.ws?
从 Java 8 迁移到 Java 11。
已将 cxf-codegen-plugin 从版本 3.2.0 更新到 3.3.6。
插件仍然使用来自 javax.jws.* 的包从 wsdl 文件生成 Java 存根,而不是来自 jakarta.jws.*:
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* This class was generated by Apache CXF 3.3.6
* 2020-08-12T19:22:40.406+02:00
* Generated source version: 3.3.6
*
*/
我是不是误会了 javax.jws 已被弃用并应更改为 jakarta.jws?
以及如何使用所需的包完成代码生成?
尝试在生成源阶段使用 maven-replacer-plugin,在我的例子中,我在目标文件夹上生成客户端文件,然后在那里替换包
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>replace-for-jakarta</id>
<phase>process-sources</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<filesToInclude>target/generated/**/*.java</filesToInclude>
<preserveDir>true</preserveDir>
<replacements>
<replacement>
<token>javax.jws</token>
<value>jakarta.jws</value>
</replacement>
</replacements>
</configuration>
</execution>
</executions>
</plugin>
在我们的例子中,配置是这样的:
<configuration>
<filesToInclude>${project.build.directory}/generated-sources/cxf/**/*.java</filesToInclude>
<preserveDir>true</preserveDir>
<replacements>
<replacement>
<token>javax.xml.bind</token>
<value>jakarta.xml.bind</value>
</replacement>
<replacement>
<token>javax.annotation</token>
<value>jakarta.annotation</value>
</replacement>
<replacement>
<token>javax.jws</token>
<value>jakarta.jws</value>
</replacement>
<replacement>
<token>javax.xml.ws</token>
<value>jakarta.xml.ws</value>
</replacement>
</replacements>
</configuration>
从 Java 8 迁移到 Java 11。
已将 cxf-codegen-plugin 从版本 3.2.0 更新到 3.3.6。
插件仍然使用来自 javax.jws.* 的包从 wsdl 文件生成 Java 存根,而不是来自 jakarta.jws.*:
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
/**
* This class was generated by Apache CXF 3.3.6
* 2020-08-12T19:22:40.406+02:00
* Generated source version: 3.3.6
*
*/
我是不是误会了 javax.jws 已被弃用并应更改为 jakarta.jws?
以及如何使用所需的包完成代码生成?
尝试在生成源阶段使用 maven-replacer-plugin,在我的例子中,我在目标文件夹上生成客户端文件,然后在那里替换包
<plugin>
<groupId>com.google.code.maven-replacer-plugin</groupId>
<artifactId>maven-replacer-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>replace-for-jakarta</id>
<phase>process-sources</phase>
<goals>
<goal>replace</goal>
</goals>
<configuration>
<filesToInclude>target/generated/**/*.java</filesToInclude>
<preserveDir>true</preserveDir>
<replacements>
<replacement>
<token>javax.jws</token>
<value>jakarta.jws</value>
</replacement>
</replacements>
</configuration>
</execution>
</executions>
</plugin>
在我们的例子中,配置是这样的:
<configuration>
<filesToInclude>${project.build.directory}/generated-sources/cxf/**/*.java</filesToInclude>
<preserveDir>true</preserveDir>
<replacements>
<replacement>
<token>javax.xml.bind</token>
<value>jakarta.xml.bind</value>
</replacement>
<replacement>
<token>javax.annotation</token>
<value>jakarta.annotation</value>
</replacement>
<replacement>
<token>javax.jws</token>
<value>jakarta.jws</value>
</replacement>
<replacement>
<token>javax.xml.ws</token>
<value>jakarta.xml.ws</value>
</replacement>
</replacements>
</configuration>