Hi You need to customize because these 2 elements will get same class name:
<xsd:element name="LOGNO" type="tns:char20"/> <xsd:element name="LOG_NO" type="tns:char20"/> May be you can instead put like: <xsd:element name="LOGNO" type="tns:char20" maxOccurs="2"/> BR Lulseged From: Marko Kocic <marko.ko...@trelleborg.com> Sent: Thursday, 9 February 2023 16:24 To: users@cxf.apache.org Subject: RE: Possible regression in cxf-codegen-plugin wsdl2java 4.0.0 Attached is the stripped up minimal example that demonstrates the issue with cxf-codegen-plugin. When running mvn clean generate-sources with 4.0.0 it fails with “Two declarations cause a collision in the ObjectFactory class.” When changing cxf.version to 3.5.5 it builds successfully. Best regards, Marko From: Marko Kocic Sent: Mittwoch, 8. Februar 2023 16:02 To: 'users@cxf.apache.org' <users@cxf.apache.org<mailto:users@cxf.apache.org>> Subject: Possible regression in cxf-codegen-plugin wsdl2java 4.0.0 I already reported the same before subscribing to the mailing list, and now after, hope it won’t result in duplicate posts. Hi everyone, I am using cxf for a few years, always keeping it up to date, and now in the process of migrating to 4.0.0 and jakarta packages. I got stuck with what I think is the regression in cxf-codegen-plugin. I have a wsdl file that contain multiple elements which name differs only in underscore, e.g: <xsd:element name="MIN_LOT_SIZE" type="tns:quantum13.3" /> <xsd:element name="MINLOTSIZE" type="tns:quantum13.3" /> To avoid clashes, in previous cxf-codegen-plugin versions we added a bindings.xml file like this: <jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"<http://java.sun.com/xml/ns/jaxb%22> xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"<http://java.sun.com/xml/ns/jaxws%22> xmlns:xs="http://www.w3.org/2001/XMLSchema"<http://www.w3.org/2001/XMLSchema%22> version="1.0"> <jaxb:bindings> <jaxb:globalBindings underscoreBinding="asCharInWord" /> </jaxb:bindings> <jaxws:bindings node="wsdl:definitions" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"<http://schemas.xmlsoap.org/wsdl/%22>> <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle> </jaxws:bindings> </jaxb:bindings> And added it like this to cxf-codegen-plugin invocation: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <args> <arg>-B-XautoNameResolution</arg> </args> <sourceRoot>${basedir}/target/generated/cxf</sourceRoot> <wsdlOptions> <wsdlOption> <wsdl>${basedir}/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl</wsdl> <wsdlLocation>classpath:wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl</wsdlLocation> <packagenames> <packagename>urn:sap-com:document:sap:rfc:functions=com.project.s4.getMaterialAll </packagename> </packagenames> <bindingFiles> <bindingFile>${basedir}/src/main/resources/bindings.xml</bindingFile> </bindingFiles> </wsdlOption> </wsdlOptions> <goals> <goal>wsdl2java</goal> </goals> </execution> </executions> </plugin> This approach worked fine until we upgraded to the latest cxf-codegen-plugin version 4.0.0. Now I get the following warnings and an error when running the goal: [INFO] --- cxf-codegen-plugin:4.0.0:wsdl2java (generate-sources) @ TSS.IA.S4.Library --- [INFO] Running code generation in fork mode... [INFO] The java executable is C:\opt\jdk\bin\java.exe [INFO] Building jar: C:\Users\Marko.Kocic\scoop\apps\msys2\2023-01-27\tmp\cxf-tmp-792315537481386814\cxf-codegen3605968430553657029.jar [INFO] 11:42:22.873 [main] DEBUG org.apache.velocity - Initializing Velocity, Calling init()... [INFO] 11:42:22.888 [main] DEBUG org.apache.velocity - Starting Apache Velocity v2.3 [INFO] 11:42:22.888 [main] DEBUG org.apache.velocity - Default Properties resource: org/apache/velocity/runtime/defaults/velocity.properties [WARNING] Exception in thread "main" org.apache.cxf.tools.common.ToolException: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [896,16]: Two declarations cause a collision in the ObjectFactory class. [WARNING] file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [919,16]: (Related to above error) This is the other declaration. [WARNING] file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [878,16]: Two declarations cause a collision in the ObjectFactory class. [WARNING] file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [1006,16]: (Related to above error) This is the other declaration. [WARNING] file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [879,16]: Two declarations cause a collision in the ObjectFactory class. [WARNING] file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [1007,16]: (Related to above error) This is the other declaration. [WARNING] [WARNING] at org.apache.cxf.tools.common.ToolErrorListener.throwToolException(ToolErrorListener.java:87) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:158) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:402) [WARNING] at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:105) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86) [WARNING] at org.apache.cxf.maven_plugin.wsdl2java.ForkOnceWSDL2Java.main(ForkOnceWSDL2Java.java:51) [WARNING] Suppressed: org.apache.cxf.tools.common.ToolException: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [896,16]: Two declarations cause a collision in the ObjectFactory class. [WARNING] ... 7 more [WARNING] Caused by: com.sun.istack.SAXParseException2publicId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; systemId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; lineNumber: 896; columnNumber: 16; Two declarations cause a collision in the ObjectFactory class. [WARNING] at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:56) [WARNING] at com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:161) [WARNING] at com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:29) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:242) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141) [WARNING] at com.sun.tools.xjc.model.Model.generateCode(Model.java:258) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:255) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67) [WARNING] at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:445) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:711) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:259) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:156) [WARNING] ... 5 more [WARNING] Suppressed: org.apache.cxf.tools.common.ToolException: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [919,16]: (Related to above error) This is the other declaration. [WARNING] ... 7 more [WARNING] Caused by: com.sun.istack.SAXParseException2publicId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; systemId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; lineNumber: 919; columnNumber: 16; (Related to above error) This is the other declaration. [WARNING] at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:56) [WARNING] at com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:163) [WARNING] at com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:29) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:242) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141) [WARNING] at com.sun.tools.xjc.model.Model.generateCode(Model.java:258) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:255) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67) [WARNING] at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:445) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:711) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:259) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:156) [WARNING] ... 5 more [WARNING] Suppressed: org.apache.cxf.tools.common.ToolException: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [878,16]: Two declarations cause a collision in the ObjectFactory class. [WARNING] ... 7 more [WARNING] Caused by: com.sun.istack.SAXParseException2publicId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; systemId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; lineNumber: 878; columnNumber: 16; Two declarations cause a collision in the ObjectFactory class. [WARNING] at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:56) [WARNING] at com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:161) [WARNING] at com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:29) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:242) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141) [WARNING] at com.sun.tools.xjc.model.Model.generateCode(Model.java:258) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:255) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67) [WARNING] at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:445) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:711) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:259) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:156) [WARNING] ... 5 more [WARNING] Suppressed: org.apache.cxf.tools.common.ToolException: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [1006,16]: (Related to above error) This is the other declaration. [WARNING] ... 7 more [WARNING] Caused by: com.sun.istack.SAXParseException2publicId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; systemId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; lineNumber: 1006; columnNumber: 16; (Related to above error) This is the other declaration. [WARNING] at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:56) [WARNING] at com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:163) [WARNING] at com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:29) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:242) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141) [WARNING] at com.sun.tools.xjc.model.Model.generateCode(Model.java:258) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:255) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67) [WARNING] at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:445) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:711) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:259) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:156) [WARNING] ... 5 more [WARNING] Suppressed: org.apache.cxf.tools.common.ToolException: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [879,16]: Two declarations cause a collision in the ObjectFactory class. [WARNING] ... 7 more [WARNING] Caused by: com.sun.istack.SAXParseException2publicId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; systemId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; lineNumber: 879; columnNumber: 16; Two declarations cause a collision in the ObjectFactory class. [WARNING] at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:56) [WARNING] at com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:161) [WARNING] at com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:29) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:242) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141) [WARNING] at com.sun.tools.xjc.model.Model.generateCode(Model.java:258) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:255) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67) [WARNING] at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:445) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:711) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:259) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:156) [WARNING] ... 5 more [WARNING] Suppressed: org.apache.cxf.tools.common.ToolException: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl [1007,16]: (Related to above error) This is the other declaration. [WARNING] ... 7 more [WARNING] Caused by: com.sun.istack.SAXParseException2publicId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; systemId: file:/C:/src/is/wso2/AS/Libraries/TSS.IA.S4.Library/src/main/resources/wsdl/Z_BAPI_MATERIAL_GET_ALL.wsdl; lineNumber: 1007; columnNumber: 16; (Related to above error) This is the other declaration. [WARNING] at com.sun.tools.xjc.ErrorReceiver.error(ErrorReceiver.java:56) [WARNING] at com.sun.tools.xjc.generator.bean.ObjectFactoryGeneratorImpl.populate(ObjectFactoryGeneratorImpl.java:163) [WARNING] at com.sun.tools.xjc.generator.bean.PublicObjectFactoryGenerator.populate(PublicObjectFactoryGenerator.java:29) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:242) [WARNING] at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141) [WARNING] at com.sun.tools.xjc.model.Model.generateCode(Model.java:258) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:255) [WARNING] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67) [WARNING] at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:445) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:711) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJavaContainer.java:259) [WARNING] at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:156) [WARNING] ... 5 more [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 5.826 s [INFO] Finished at: 2023-02-08T11:42:24+01:00 [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.cxf:cxf-codegen-plugin:4.0.0:wsdl2java (generate-sources) on project TSS.IA.S4.Library: [ERROR] Exit code: 1 [ERROR] Command line was: cmd.exe /X /C "C:\opt\jdk\bin\java.exe --add-exports=jdk.xml.dom/org.w3c.dom.html=ALL-UNNAMED --add-exports=java.xml/com.sun.org.apache.xerces.internal.impl.xs=ALL-UNNAMED --add-opens java.base/java.security=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.concurrent=ALL-UNNAMED -Dorg.apache.cxf.Logger=null -jar C:\Users\Marko.Kocic\scoop\apps\msys2\2023-01-27\tmp\cxf-tmp-792315537481386814\cxf-codegen3605968430553657029.jar C:\Users\Marko.Kocic\scoop\apps\msys2\2023-01-27\tmp\cxf-tmp-792315537481386814\cxf-w2j11803512441830701137args" Does anyone eles has the same issue with the latest cxf-codegen-plugin wsdl2java task, or I missed something during the upgrade? Returning back to the old cxf-codegen-plugin is not an option, since it generates code in javax instead of Jakarta packages. Best regards, Marko