cxf生成的类的不同源根

时间:2017-06-12 09:53:52

标签: apache maven cxf

我有以下问题。有一些wsdl文件应该转换成java类。

<plugin>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-codegen-plugin</artifactId>
        <version>${cxf.version}</version>
        <executions>
            <execution>
                <id>generate-sources</id>
                <phase>generate-sources</phase>
                <configuration>
                    <sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
                    <wsdlOptions>
                        <wsdlOption>
                            <wsdl>${basedir}/src/main/resources/wsdl/configurationAndSecurityService.wsdl</wsdl>
                        </wsdlOption>
                        <wsdlOption>
                            <wsdl>${basedir}/src/main/resources/wsdl/ordersService.wsdl</wsdl>
                        </wsdlOption>
                    </wsdlOptions>
                </configuration>
                <goals>
                    <goal>wsdl2java</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

问题是当wsdls被转换为java类时,我收到有关重复项的错误消息(某些类具有相同的名称)。最初,我想将每个wsdl放入其拥有的源根(子包)中,但我不知道该怎么做。有没有办法将每个wsdl绑定到自己的源根?

1 个答案:

答案 0 :(得分:1)

您需要在具有不同sourceRoot的多个执行中拆分它,但这也可能导致类路径冲突。

我通常为每个wsdlOption分配不同的包名:

  <packagenames>
    <packagename>
      https://www.namespace.de=de.namespace1
    </packagename>
  </packagenames>

另请参阅:http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html