このシナリオを想像してみてください。
名前空間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>
、名前空間が必要なパッケージにマップされます。