このシナリオを想像してみてください。
名前空間a/b/cのwsdlファイルがあり、名前空間がm/n/oの別のwsdlをインポートします。残念ながら、どちらにも同じComplexTypesXYZが定義されています。ここで、cxf-codegen-pluginを使用してJavaコードを生成し、カスタムパッケージ名 "com.qsrs.uvw"を使用すると、生成される最終コードに保持されるクラスは1つだけです。誰かがここで私を助けてくれますか?
名前空間に応じてパッケージを生成する場合の解決策は次のとおりです。
<plugin>
<groupId>org.Apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.6.0</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/target/generated/src/main/Java</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>yourWsdl.wsld</wsdl>
<extraargs>
<extraarg>-client</extraarg>
<extraarg>-verbose</extraarg>
<extraarg>-p</extraarg>
<extraarg>http://your.namespace/services/=your.package</extraarg>
<extraarg>-p</extraarg>
<extraarg>http://your.namespace2/services2/=your.package2</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2Java</goal>
</goals>
</execution>
</executions>
</plugin>
この <extraarg>http://your.namespace2/services2/=your.package2</extraarg>
は、名前空間を必要なパッケージにマップします。