我发现了这个关于添加-fe jaxws21
到 wsdl2java 命令以使其生成符合 jaxws 2.1 的代码而不是 2.2 的重要提示,但是 Mavenpom.xml
似乎不喜欢这样放置时的添加:
<goals>
<goal>wsdl2java -fe jaxws21</goal>
</goals>
为 pom.xml 中使用的 wsdl2java 指定前端的正确方法是什么?
如果您使用的是 cxf-codegen-plugin,您可以在 extraargs 元素中添加参数:
<executions>
<execution>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>...</wsdl>
<extraargs>
<extraarg>-fe</extraarg>
<extraarg>jaxws21</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
来源:http ://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html
您可以使用<frontEnd>
inside<wsdlOption>
或<defaultOption>
. 后者很有帮助,如果您包含多个 WSDL 并指定<wsdlRoot>
:
<executions>
<execution>
<configuration>
<defaultOptions>
<frontEnd>jaxws21</frontEnd>
</defaultOptions>
<wsdlRoot>${basedir}/src/main/wsdl</wsdlRoot>
<includes>
<include>*.wsdl</include>
</includes>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
为了补充@fishbone 和@tafit3 的答案,另请参阅在类路径中找不到 jaxws21 前端,因为它看起来像是frontend
在次要 cxf 版本中添加的。
我尝试了他们的答案,但只有在将 cxf-codegen-plugin 升级到 2.3.11 后才能正常工作