[ 
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.

Reply via email to