[ https://issues.apache.org/jira/browse/CXF-1078?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jesse McLaughlin updated CXF-1078: ---------------------------------- Attachment: test.wsdl the test WSDL file > WSDL2Java giving unexpected results when generating client Port interface > ------------------------------------------------------------------------- > > Key: CXF-1078 > URL: https://issues.apache.org/jira/browse/CXF-1078 > Project: CXF > Issue Type: Bug > Components: JAXB Databinding > Affects Versions: 2.0.2 > Environment: Mac OS/X, JDK5. > Reporter: Jesse McLaughlin > Attachments: test.wsdl, types.xsd > > > I was previously using WSDL2Java for XFire 1.2.6, and with XFire this example > works just fine. When I switched to CXF the results are quite different and > don't look right... > I have two files in this test, the WSDL and one XSD file. The XSD contains > comments indicating where sections can be commented/uncommented in order to > show how the results vary unexpectedly. > When WSDL2Java is run on the attached WSDL file (passing the -client arg), > the generated file 'com/test/testservice/TestPort.java' looks like this: > @WebService(targetNamespace = "http://www.test.com/TestService/", name = > "TestPort") > public interface TestPort { > @ResponseWrapper(targetNamespace = "http://www.test.com/test", className > = "com.test.test.GetPersonRes", localName = "getPersonResponse") > @RequestWrapper(targetNamespace = "http://www.test.com/test", className = > "com.test.test.GetPersonReq", localName = "getPerson") > @WebMethod > public void getPerson(); > } > This is wrong since according to the WSDL the getPerson() operation takes a > parameter and also returns a parameter. > When the XSD is changed to the use the alternative type definitions as > indicated in the inline comments, the generated file then becomes: > @WebService(targetNamespace = "http://www.test.com/TestService/", name = > "TestPort") > public interface TestPort { > @ResponseWrapper(targetNamespace = "http://www.test.com/test", className > = "com.test.test.GetPersonRes", localName = "getPersonResponse") > @RequestWrapper(targetNamespace = "http://www.test.com/test", className = > "com.test.test.GetPersonReq", localName = "getPerson") > @WebResult(targetNamespace = "", name = "return") > @WebMethod > public com.test.test.GetPersonRes.Return getPerson( > @WebParam(targetNamespace = "", name = "personId") > java.math.BigInteger personId > ); > } > Which looks much more like what I want (and also what XFire gave). > It seems that changing the parameter definitions to inherit from an abstract > base type somehow causes this issue. > For reference, here are the jars on my classpath when I run WSDL2Java: > cxf-2.0.2-incubator.jar > cxf-manifest-incubator.jar > jaxb-api-2.0.jar > jaxb-impl-2.0.5.jar > jaxb-xjc-2.0.jar > jaxen-1.1.jar > jdom-1.0.jar > neethi-2.0.2.jar > stax-api-1.0.1.jar > stax-utils-20060502.jar > velocity-1.4.jar > velocity-dep-1.4.jar > wstx-asl-3.2.1.jar > xml-resolver-1.2.jar > XmlSchema-1.2.jar > jaxws-api-2.0.jar > wsdl4j-1.6.1.jar > geronimo-ws-metadata_2.0_spec-1.1.1.jar > geronimo-activation_1.1_spec-1.0-M1.jar > geronimo-annotation_1.0_spec-1.1.jar > commons-logging-1.1.jar > log4j-1.2.11.jar -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.