CXF自动生成失败,重复选项:前端"在maven?

时间:2014-06-11 09:47:42

标签: java web-services maven soap cxf

我已经从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创建两次?

2 个答案:

答案 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>