Hello,
I updated cxf from 2.3.3 to 2.7.10. The jars are bundles with JBoss 6.2. I
am using the DynamicClientFactory to create a proxy which invokes the
service.

In the old version the name-attribute of the parameter element within the
schema was considered. In the newer version it replaces the value of the
name attribute with the tag name of the underlying complex type. I could not
find any cxf related information (mailing list posts, jira issues, ...) on
the internet, but I consider this as a bug. Am I wrong or can this be fixed
by myself in any way?

Best regards
Dennis

PS: I am not able to test with a recent cxf bundle, because the service is
only callable in a non development environment.

2.3.3
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
    <soap:Header>
        <AuthHeader xmlns="https://webservice.domain.eu/Webservice/V1/";>
            <Value>123</Value>
        </AuthHeader>
    </soap:Header>
    <soap:Body>
        <ns2:OperationName
xmlns="https://webservice.domain.eu/Webservice/V1/";
xmlns:ns2="https://webservice.domain.eu/Webservice/V2/";
xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/";>
            <ns2:request>
                <ns2:PLZ>12345</ns2:PLZ>
                <ns2:Ort>test</ns2:Ort>
                <ns2:Strasse>test</ns2:Strasse>
                <ns2:Hausnummer>22</ns2:Hausnummer>
                <ns2:Datum>2013-04-01+02:00</ns2:Datum>
            </ns2:request>
        </ns2:OperationName>
    </soap:Body>
</soap:Envelope>

2.7.10
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
    <soap:Header>
        <AuthHeader xmlns="https://webservice.domain.eu/Webservice/V1/";>
            <Value>123</Value>
        </AuthHeader>
    </soap:Header>
    <soap:Body>
        <ns2:OperationName
xmlns="https://webservice.domain.eu/Webservice/V1/";
xmlns:ns2="https://webservice.domain.eu/Webservice/V2/";
xmlns:ns3="http://schemas.microsoft.com/2003/10/Serialization/";>
            <ns2:TypeName>
                <ns2:PLZ>12345</ns2:PLZ>
                <ns2:Ort>test</ns2:Ort>
                <ns2:Strasse>test</ns2:Strasse>
                <ns2:Hausnummer>2</ns2:Hausnummer>
                <ns2:Datum>2012-04-01T12:04:00.000+02:00</ns2:Datum>
            </ns2:TypeName>
        </ns2:OperationName>
    </soap:Body>
</soap:Envelope>


<wsdl:types>
        ...
        <xsd:schema elementFormDefault="qualified"
targetNamespace="https://webservice.domain.eu/Webservice/V2/";>
                <xsd:element name="OperationName">
                        <xsd:complexType>
                                <xsd:sequence>
                                        <xsd:element minOccurs="0" 
name="request" nillable="true"
type="tns:TypeName"/>
                                </xsd:sequence>
                        </xsd:complexType>
                </xsd:element>
                <xsd:complexType name="TypeName">
                        <xsd:sequence>
                                <xsd:element name="PLZ" nillable="true" 
type="xsd:string"/>
                                <xsd:element name="Ort" nillable="true" 
type="xsd:string"/>
                                <xsd:element minOccurs="0" name="Strasse" 
nillable="true"
type="xsd:string"/>
                                <xsd:element minOccurs="0" name="Hausnummer" 
nillable="true"
type="xsd:string"/>
                                <xsd:element minOccurs="0" name="Zaehler" 
type="xsd:int"/>
                                <xsd:element minOccurs="0" name="Datum" 
nillable="true"
type="xsd:date"/>
                        </xsd:sequence>
                </xsd:complexType>
                <xsd:element name="TypeName" nillable="true" 
type="tns:TypeName"/>
        ...
        </xsd:schema>
</wsdl:types>

<wsdl:message name="BusinessCaseService_OperationName_InputMessage">
        <wsdl:part name="parameters" element="tns:OperationName"/>
</wsdl:message>

PortType:
<wsdl:operation name="OperationName">
        <wsdl:input
wsaw:Action="https://webservice.domain.eu/Webservice/V2/BusinessCaseService/OperationName";
message="tns:BusinessCaseService_OperationName_InputMessage"/>
        <wsdl:output
wsaw:Action="https://webservice.domain.eu/Webservice/V2/BusinessCaseService/OperationNameResponse";
message="tns:BusinessCaseService_OperationName_OutputMessage"/>
        <wsdl:fault
wsaw:Action="https://webservice.domain.eu/Webservice/V2/BusinessCaseService/OperationNameServiceFaultFault";
name="ServiceFaultFault"
message="tns:BusinessCaseService_OperationName_ServiceFaultFault_FaultMessage"/>
</wsdl:operation>

Binding:
<wsdl:operation name="OperationName">
        <soap:operation
soapAction="https://webservice.domain.eu/Webservice/V2/BusinessCaseService/OperationName";
style="document"/>
        <wsdl:input>
                <soap:header
message="tns:BusinessService_OperationName_InputMessage_Headers"
part="AuthHeader" use="literal"/>
                <soap:body use="literal"/>
        </wsdl:input>
        <wsdl:output>
                <soap:body use="literal"/>
        </wsdl:output>
        <wsdl:fault name="ServiceFaultFault">
                <soap:fault name="ServiceFaultFault" use="literal"/>
        </wsdl:fault>
</wsdl:operation>



--
View this message in context: 
http://cxf.547215.n5.nabble.com/cxf-2-3-3-vs-2-7-10-Different-parameter-naming-in-payload-using-DynamicClient-tp5753385.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to