Cannot uniquely indentify operation error
javapenguin Sep 30, 2013 4:07 AMI have a JBoss 5.1 Web Service with two operations
Both operations take the same same request type
Each has it's own action
The web service compile and deploy fine, but when I try and submit a request with soapUI I get the following error:
Cannot uniquely indentify operation: {https://garygateway.quinn.co.za/services/garygateway}GaryRequest
Here is my WSDL
<definitions name='GaryGatewayService' targetNamespace='https://garygateway.quinn.co.za/services/garygateway' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:ns1='https://garygateway.quinn.co.za/services/garygateway' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='https://garygateway.quinn.co.za/services/garygateway' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <types> <xs:schema targetNamespace='https://garygateway.quinn.co.za/services/garygateway' version='1.0' xmlns:ns1='https://garygateway.quinn.co.za/services/garygateway' xmlns:xs='http://www.w3.org/2001/XMLSchema'> <xs:import namespace='https://garygateway.quinn.co.za/services/garygateway'/> <xs:element name='GaryRequest' nillable='true' type='ns1:garyRequest'/> <xs:element name='GaryResponse' nillable='true' type='ns1:garyResponse'/> </xs:schema> <xs:schema targetNamespace='https://garygateway.quinn.co.za/services/garygateway' version='1.0' xmlns:xs='http://www.w3.org/2001/XMLSchema'> <xs:complexType name='garyRequest'> <xs:sequence> <xs:element minOccurs='0' name='id' type='xs:string'/> <xs:element minOccurs='0' name='name' type='xs:string'/> <xs:element minOccurs='0' name='surname' type='xs:string'/> </xs:sequence> </xs:complexType> <xs:complexType name='garyResponse'> <xs:sequence> <xs:element minOccurs='0' name='message' type='xs:string'/> <xs:element minOccurs='0' name='status' type='xs:string'/> </xs:sequence> </xs:complexType> </xs:schema> </types> <message name='GaryGatewayEndpoint_requestOneResponse'> <part element='ns1:GaryResponse' name='GaryResponse'></part> </message> <message name='GaryGatewayEndpoint_requestTwoResponse'> <part element='ns1:GaryResponse' name='GaryResponse'></part> </message> <message name='GaryGatewayEndpoint_requestTwo'> <part element='ns1:GaryRequest' name='requestTwo'></part> </message> <message name='GaryGatewayEndpoint_requestOne'> <part element='ns1:GaryRequest' name='requestOne'></part> </message> <portType name='GaryGatewayEndpoint'> <operation name='requestOne' parameterOrder='requestOne'> <input message='tns:GaryGatewayEndpoint_requestOne'></input> <output message='tns:GaryGatewayEndpoint_requestOneResponse'></output> </operation> <operation name='requestTwo' parameterOrder='requestTwo'> <input message='tns:GaryGatewayEndpoint_requestTwo'></input> <output message='tns:GaryGatewayEndpoint_requestTwoResponse'></output> </operation> </portType> <binding name='GaryGatewayEndpointBinding' type='tns:GaryGatewayEndpoint'> <soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/> <operation name='requestOne'> <soap:operation soapAction='https://garygateway.quinn.co.za/services/garygateway/requestOne'/> <input> <soap:body use='literal'/> </input> <output> <soap:body use='literal'/> </output> </operation> <operation name='requestTwo'> <soap:operation soapAction='https://garygateway.quinn.co.za/services/garygateway/requestTwo'/> <input> <soap:body use='literal'/> </input> <output> <soap:body use='literal'/> </output> </operation> </binding> <service name='GaryGatewayService'> <port binding='tns:GaryGatewayEndpointBinding' name='GaryGatewayEndpointPort'> <soap:address location='http://gary-desktop:8480/wsgateway/GaryGateway'/> </port> </service> </definitions>
I enabled WS-A addressing which makes the soap message header look like this:
<soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"><wsa:Action>https://garygateway.quinn.co.za/services/garygateway/GaryGatewayEndpoint/requestOneRequest</wsa:Action></soapenv:Header>
Here are the headers also generated by SoapUI:
POST /wsgateway/GaryGateway HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "https://garygateway.quinn.co.za/services/garygateway/GaryGatewayEndpoint/requestOneRequest"
Content-Length: 544
Host: gary-desktop:8480
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
But still I am getting the Cannot uniquely indentify operation error
Here is the full response:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <env:Fault> <faultcode>env:Server</faultcode> <faultstring>Cannot uniquely indentify operation: {https://garygateway.quinn.co.za/services/garygateway}GaryRequest</faultstring> </env:Fault> </env:Body> </env:Envelope>