cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jesse McLaughlin (JIRA)" <j...@apache.org>
Subject [jira] Created: (CXF-1078) WSDL2Java giving unexpected results when generating client Port interface
Date Fri, 28 Sep 2007 08:16:50 GMT
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


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.


Mime
View raw message