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.