我已经从WSDL
文件设置了一个简单的cxf maven自动生成。但我得到以下例外。我错过了什么?
执行生成 - 目标来源 org.apache.cxf:cxf-codegen-plugin:3.0.0:wsdl2java失败: org.apache.cxf.tools.common.toolspec.parser.BadUsageException: 重复选项:前端 (org.apache.cxf:CXF-CODEGEN-插件:3.0.0:WSDL2Java的:产生来源:产生来源)
的pom.xml:
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<defaultOptions>
<extraargs>
<extraarg>-fe</extraarg>
<extraarg>cxf</extraarg>
</extraargs>
</defaultOptions>
<wsdlOptions>
<wsdlOption>
<wsdl>${project.basedir}/src/main/resources/MyService.wsdl</wsdl>
<wsdlLocation>classpath:/MyService.wsdl</wsdlLocation>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.0.0</version>
</dependency>
<dependencies>
Maven调试显示以下内容:
[DEBUG]用args调用wsdl2java:[ - encoding,UTF-8,-d, \ target \ generated \ src \ main \ java,-fe,cxf,-fe,cxf,-wsdlLocation, 类路径:WSDL / MyService.wsdl,...
为什么前端-fe
创建两次?
答案 0 :(得分:4)
删除<extraargs><extraarg>-fe</extraarg><extraarg>cxf</extraarg></extraargs>
部分。
在wsdlOption中添加此extraarg
<wsdlOption>
<extraarg>-autoNameResolution</extraarg>
</wsdlOption>
答案 1 :(得分:1)
遇到了完全相同的问题。您必须禁用目录扫描。然后您可以将 extraargs 保留在默认选项中,而不必为所有 wsdlOptions 重复它们。
<configuration>
<sourceRoot>${project.build.directory}/generated-sources/cxf</sourceRoot>
<disableDirectoryScan>true</disableDirectoryScan>
<defaultOptions>
<extraargs>
<extraarg>-verbose</extraarg>
<extraarg>-validate</extraarg>
<extraarg>-client</extraarg>
<extraarg>-suppress-generated-date</extraarg>
</extraargs>
</defaultOptions>
<!--wsdlOptions-->
</configuration>