![](/img/trans.png)
[英]How do i force the cxf-codegen-plugin (CXF wsdltojava) Maven plugin to generate for Javaee 5?
[英]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.* 而不是來自 jakarta.jws.* 的包從 wsdl 個文件生成 Java 個存根:
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,在我的情況下,我在目標文件夾上生成客戶端文件,然后在那里替換 package
<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>
問題已在CXF-8371中得到解決
如果升級到版本 >4.0.0,它將生成 jakarta.jws 而不是 javax.jws。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.