Re: Wsdl2java ignores soapAction?
This is actually per spec according to the WS-I Basic Profile. Section ---snip--- 5.6.7 Wire Signatures for Operations An endpoint that supports multiple operations must unambiguously identify the operation being invoked based on the input message that it receives. This is only possible if all the operations specified in the wsdl:binding associated with an endpoint have a unique wire signature. R2710 The operations in a wsdl:binding in a DESCRIPTION MUST result in wire signatures that are different from one another. The Profile defines the "wire signature" of an operation in a wsdl:binding to be the fully qualified name of the child element of the soap:Body of the SOAP input message it describes. For the case of an empty soap:Body this name is an empty string. In the case of rpc-literal binding, the operation name is used as a wrapper for the part accessors. In the document-literal case, since a wrapper with the operation name is not present, the message signatures must be correctly designed so that they meet this requirement. ---snip--- We probably could add a flag to allow it to ignore such checks, but then you really are on your own in terms of interopability. You'd be outside the specs. Dan On Thursday 31 January 2008, Marco Piraccini wrote: > I tried to apply wsdl2java to the WSDL below. The WSDL operations > defined are both referring to the same type element as input message, > so the soap body are the same for both the messages. To solve this > collision, i added the soapAction to the binding, but the wsdl2java > seems to ignore it. > > The message returned by the tool is: > > WSDLToJava Error : Non unique body parts! In a port, operations must > have unique operation signaure on the wire for successful dispatch. In > port {urn:test}EchoTestPort, Operations "{urn:test}echoRequestB" and > "{urn:test}echoRequestA" have the same request body block > {urn:test}TRequestA > > That's correct (if no soapAction is defined), but in my opinion > shouldn't be returned with the soapAction defined. > > Marco. > > xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:ns1="http://test.it"; > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; > xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"; > xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"; > xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"; > xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"; > xmlns:tns="urn:test" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; > targetNamespace="urn:test"> > elementFormDefault="qualified" targetNamespace="urn:test"> > > > > name="dataBoolean" nillable="false" type="xsd:boolean"/> > > > > > > name="dataString" nillable="false" type="xsd:string"/> > > > > > > > name="typeA" nillable="false" type="tns:TypeA"/> > > > > > > > name="typeB" nillable="false" type="tns:TypeB"/> > > > > > > > > type="tns:TypeA"/> > type="tns:TypeB"/> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > style="document"/> > > > > > > > > > > > > > > > > > > >http://localhost/fake_location"/> > > > -- J. Daniel Kulp Principal Engineer, IONA [EMAIL PROTECTED] http://www.dankulp.com/blog
Re: Wsdl2java ignores soapAction?
Better let us know the version of CXF you're using James On Jan 31, 2008 8:07 PM, Marco Piraccini <[EMAIL PROTECTED]> wrote: > I tried to apply wsdl2java to the WSDL below. The WSDL operations > defined are both referring to the same type element as input message, > so the soap body are the same for both the messages. To solve this > collision, i added the soapAction to the binding, but the wsdl2java > seems to ignore it. > > The message returned by the tool is: > > WSDLToJava Error : Non unique body parts! In a port, operations must > have unique operation signaure on the wire for successful dispatch. In > port {urn:test}EchoTestPort, Operations "{urn:test}echoRequestB" and > "{urn:test}echoRequestA" have the same request body block > {urn:test}TRequestA > > That's correct (if no soapAction is defined), but in my opinion > shouldn't be returned with the soapAction defined. > > Marco. > > xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:ns1="http://test.it"; > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; > xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"; > xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"; > xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"; > xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"; > xmlns:tns="urn:test" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; > xmlns:xsd="http://www.w3.org/2001/XMLSchema"; targetNamespace="urn:test"> > > elementFormDefault="qualified" targetNamespace="urn:test"> > > > > name="dataBoolean" nillable="false" type="xsd:boolean"/> > > > > > > name="dataString" nillable="false" type="xsd:string"/> > > > > > > >name="typeA" nillable="false" type="tns:TypeA"/> > > > > > > >name="typeB" nillable="false" type="tns:TypeB"/> > > > > > > > >type="tns:TypeA"/> >type="tns:TypeB"/> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > http://localhost/fake_location"/> > > > > > >
Wsdl2java ignores soapAction?
I tried to apply wsdl2java to the WSDL below. The WSDL operations defined are both referring to the same type element as input message, so the soap body are the same for both the messages. To solve this collision, i added the soapAction to the binding, but the wsdl2java seems to ignore it. The message returned by the tool is: WSDLToJava Error : Non unique body parts! In a port, operations must have unique operation signaure on the wire for successful dispatch. In port {urn:test}EchoTestPort, Operations "{urn:test}echoRequestB" and "{urn:test}echoRequestA" have the same request body block {urn:test}TRequestA That's correct (if no soapAction is defined), but in my opinion shouldn't be returned with the soapAction defined. Marco. xmlns="http://schemas.xmlsoap.org/wsdl/"; xmlns:ns1="http://test.it"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"; xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:soapenc12="http://www.w3.org/2003/05/soap-encoding"; xmlns:tns="urn:test" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; targetNamespace="urn:test"> elementFormDefault="qualified" targetNamespace="urn:test"> name="dataBoolean" nillable="false" type="xsd:boolean"/> name="dataString" nillable="false" type="xsd:string"/> name="typeA" nillable="false" type="tns:TypeA"/> name="typeB" nillable="false" type="tns:TypeB"/> type="tns:TypeA"/> type="tns:TypeB"/> http://localhost/fake_location"/>