I am trying to understand if this behavior I am seeing is expected and if so,
can someone explain why.

I have a wsdl where my request and response elements extend another element. 
When the extension element is included my web method is generated with a
@SOAPBinding annotation with a bare parameter style.  However, if I remove
the extension element, I get REsponseWrapper, RequestWrapper and WebResult
annotations.

Here is a snippet of my wsdl:
<xs:element name="GetAddress">
<xs:complexType>
<xs:complexContent>
<xs:extension base="tns:simpleBeanInfo">
<xs:sequence>
<xs:element form="qualified" minOccurs="0" name="addressInput"
type="tns:addressInputType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>

--- Other schema def ----

  <wsdl:message name="GetAddress">
    <wsdl:part element="tns:GetAddress" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="GetAddressResponse">
    <wsdl:part element="tns:GetAddressResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="AddressPort">
    <wsdl:operation name="GetAddress">
      <wsdl:input message="tns:GetAddress" name="GetAddress">
    </wsdl:input>
      <wsdl:output message="tns:GetAddressResponse"
name="GetAddressResponse">
    </wsdl:output>
    </wsdl:operation>
</wsdl:portType>

And this is what is generated:

@WebService(targetNamespace = "urn:AddressTNS", name = "AddressPort")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)

public interface AddressPort {

    @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
    @WebResult(name = "GetAddressResponse", targetNamespace =
"urn:AddressTNS", partName = "parameters")
    @WebMethod(operationName = "GetAddress", action = "urn:GetAddress")
    public addresstns.GetAddressResponse getAddress(
        @WebParam(partName = "parameters", name = "GetAddress",
targetNamespace = "urn:AddressTNS")
        GetAddress parameters
    );
}


Now if I remove the xs:complexContent and the xs:extension elements, my
generated code will look like this:

@WebService(targetNamespace = "urn:AddressTNS", name = "AddressPort")

public interface AddressPort {

    @ResponseWrapper(localName = "GetAddressResponse", targetNamespace =
"urn:AddressTNS", className = "addresstns.GetAddressResponse")
    @RequestWrapper(localName = "GetAddress", targetNamespace =
"urn:AddressTNS", className = "addresstns.GetAddress")
    @WebResult(name = "addressOutput", targetNamespace = "")
    @WebMethod(operationName = "GetAddress", action = "urn:GetAddress")
    public addresstns.AddressOutputType getAddress(
        @WebParam(name = "addressInput", targetNamespace = "")
        addresstns.AddressInputType addressInput
    );
}

I am wondering why they would be different?  I would expect both to generate
like the second.  If this is behaving as expected can someone tell me why
they should be different?

I am using CXF 2.0.5.

Thanks
-- 
View this message in context: 
http://www.nabble.com/Web-methods-generated-differently-when-request-response-extend-another-class-tp17212004p17212004.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to