Axis2
  1. Axis2
  2. AXIS2-2118

Wrong action name using WS-Addressing

    Details

    • Type: Bug Bug
    • Status: Resolved
    • Priority: Blocker Blocker
    • Resolution: Fixed
    • Affects Version/s: 1.1
    • Fix Version/s: None
    • Component/s: client-api
    • Labels:
      None

      Description

      I'm trying to communicate to a .NET/WSE2.0 webservice.

      I use the ServiceClient with the following constructor:
      ServiceClient client = new ServiceClient(ConfigurationContext cc, Definition serviceDefinition, QName serviceName, String port);

      The problem we have now seems to be something with addressing. I already changed the namespace using the ServiceClient options:
      f_client.getOptions().setProperty(AddressingConstants.WS_ADDRESSING_VERS
      ION, Submission.WSA_NAMESPACE);

      The problem that remains is that the action doesn't seem to be correct.
      The wsdl mentions:
      <wsdl:binding name="Data_x0020_ExtractSoap"
      type="tns:Data_x0020_ExtractSoap">
      <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
      style="document"/>
      <wsdl:operation name="GetUnsentProductData"> <soap:operation
      soapAction="http://www.i-label.net/Partners/WebServices/DataFeed/2005/11
      /GetUnsentProductData" style="document"/>
      <wsdl:input>
      <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
      <soap:body use="literal"/>
      </wsdl:output>
      </wsdl:operation>
      </wsdl:binding>

      So the action should be
      http://www.i-label.net/Partners/WebServices/DataFeed/2005/11/GetUnsentPr
      oductData

      However the sent SOAP contains the following part:
      <wsa:Action
      xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssec
      urity-utility-1.0.xsd"
      wsu:Id="Id-25682308">http://www.i-label.net/Partners/WebServices/DataFee
      d/2005/11/Data_x0020_ExtractSoap/GetUnsentProductDataRequest</wsa:Action
      >

      Somehow it seems to insert the name of the Binding in the action.

      Is there a way to change this behaviour?

      1. extractdata.wsdl
        8 kB
        Brecht Yperman

        Activity

        Hide
        Brecht Yperman added a comment -

        As you can see in the trace below the SOAPAction in the html-header is correct (from the wsdl), but the one in the soap-headers is not (generated from namespace/binding/operation)

        12:55:20,795 [2007-02-12 12:55:20,795] - HttpMethodBase.addRequestHeader(Header)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.renerateRequestBody()
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "SOAPAction: "http://www.i-label.net/Partners/WebServices/DataFeed/2005/11/GetUnsentProductData"[\r][\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[])
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int)
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "User-Agent: Axis2[\r][\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[])
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int)
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "Host: www.i-label.net[\r][\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[])
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int)
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "Content-Length: 6943[\r][\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[])
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int)
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "Content-Type: text/xml; charset=UTF-8[\r][\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[])
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.writeLine()
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[])
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int)
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "[\r][\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.writeRequestBody(HttpState, HttpConnection)
        12:55:20,795 [2007-02-12 12:55:20,795] - enter PostMethod.hasRequestContent()
        12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.hasRequestContent()
        12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.getRequestContentLength()
        12:55:20,795 [2007-02-12 12:55:20,795] - enter PostMethod.hasRequestContent()
        12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.hasRequestContent()
        12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.getRequestOutputStream()
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header>[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1"><wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-21589591"><wsu:Created>2007-02-12T11:55:09.137Z</wsu:Created><wsu:Expires>2007-02-15T23:15:09.137Z</wsu:Expires></wsu:Timestamp><wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-2010600223">[...]</wsse:BinarySecurityToken><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" Id="Signature-11841700" wsu:Id="Id-24804063">[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:SignedInfo>[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />[\n]"
        [...]
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:SignedInfo>[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:SignatureValue>[\n]"
        [...]
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:SignatureValue>[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:KeyInfo Id="KeyId-18152502">[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "<wsse:SecurityTokenReference wsu:Id="STRId-33142788"><wsse:Reference URI="#CertId-2010600223" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" /></wsse:SecurityTokenReference>[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:KeyInfo>[\n]"
        12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:Signature></wsse:Security><wsa:To xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-19560686">http://www.i-label.net/partners/webservices/datafeed/extractdata.asmx</wsa:To><wsa:ReplyTo xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-23684178"><wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address></wsa:ReplyTo><wsa:MessageID xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-3753803">urn:uuid:7C6F682CE5D38E3C9311712813085911</wsa:MessageID><wsa:Action xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-7838041">http://www.i-label.net/Partners/WebServices/DataFeed/2005/11/Data_x0020_ExtractSoap/GetUnsentProductDataRequest</wsa:Action></soapenv:Header>[...]</soapenv:Envelope>"
        12:55:20,795 [2007-02-12 12:55:20,795] - Request body sent

        Show
        Brecht Yperman added a comment - As you can see in the trace below the SOAPAction in the html-header is correct (from the wsdl), but the one in the soap-headers is not (generated from namespace/binding/operation) 12:55:20,795 [2007-02-12 12:55:20,795] - HttpMethodBase.addRequestHeader(Header) 12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.renerateRequestBody() 12:55:20,795 [2007-02-12 12:55:20,795] - >> "SOAPAction: "http://www.i-label.net/Partners/WebServices/DataFeed/2005/11/GetUnsentProductData" [\r] [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[]) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int) 12:55:20,795 [2007-02-12 12:55:20,795] - >> "User-Agent: Axis2 [\r] [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[]) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int) 12:55:20,795 [2007-02-12 12:55:20,795] - >> "Host: www.i-label.net [\r] [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[]) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int) 12:55:20,795 [2007-02-12 12:55:20,795] - >> "Content-Length: 6943 [\r] [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[]) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int) 12:55:20,795 [2007-02-12 12:55:20,795] - >> "Content-Type: text/xml; charset=UTF-8 [\r] [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.print(String) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[]) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.writeLine() 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[]) 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.write(byte[], int, int) 12:55:20,795 [2007-02-12 12:55:20,795] - >> " [\r] [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.writeRequestBody(HttpState, HttpConnection) 12:55:20,795 [2007-02-12 12:55:20,795] - enter PostMethod.hasRequestContent() 12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.hasRequestContent() 12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.getRequestContentLength() 12:55:20,795 [2007-02-12 12:55:20,795] - enter PostMethod.hasRequestContent() 12:55:20,795 [2007-02-12 12:55:20,795] - enter EntityEnclosingMethod.hasRequestContent() 12:55:20,795 [2007-02-12 12:55:20,795] - enter HttpConnection.getRequestOutputStream() 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1"><wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-21589591"><wsu:Created>2007-02-12T11:55:09.137Z</wsu:Created><wsu:Expires>2007-02-15T23:15:09.137Z</wsu:Expires></wsu:Timestamp><wsse:BinarySecurityToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" wsu:Id="CertId-2010600223"> [...] </wsse:BinarySecurityToken><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" Id="Signature-11841700" wsu:Id="Id-24804063"> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:SignedInfo> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> [\n] " [...] 12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:SignedInfo> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:SignatureValue> [\n] " [...] 12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:SignatureValue> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<ds:KeyInfo Id="KeyId-18152502"> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "<wsse:SecurityTokenReference wsu:Id="STRId-33142788"><wsse:Reference URI="#CertId-2010600223" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3" /></wsse:SecurityTokenReference> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:KeyInfo> [\n] " 12:55:20,795 [2007-02-12 12:55:20,795] - >> "</ds:Signature></wsse:Security><wsa:To xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-19560686"> http://www.i-label.net/partners/webservices/datafeed/extractdata.asmx </wsa:To><wsa:ReplyTo xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-23684178"><wsa:Address> http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous </wsa:Address></wsa:ReplyTo><wsa:MessageID xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-3753803">urn:uuid:7C6F682CE5D38E3C9311712813085911</wsa:MessageID><wsa:Action xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-7838041"> http://www.i-label.net/Partners/WebServices/DataFeed/2005/11/Data_x0020_ExtractSoap/GetUnsentProductDataRequest </wsa:Action></soapenv:Header> [...] </soapenv:Envelope>" 12:55:20,795 [2007-02-12 12:55:20,795] - Request body sent
        Hide
        Davanum Srinivas added a comment -

        Amila,

        Could this be a codegen issue?

        – dims

        Show
        Davanum Srinivas added a comment - Amila, Could this be a codegen issue? – dims
        Hide
        Amila Chinthaka Suriarachchi added a comment -

        can you please attach the wsdl and the options you used to generate the code if you
        generating the code.

        Show
        Amila Chinthaka Suriarachchi added a comment - can you please attach the wsdl and the options you used to generate the code if you generating the code.
        Hide
        Brecht Yperman added a comment -

        This is the wsdl, I didn't generate any code myself, I used the ServiceClient directly.

        Show
        Brecht Yperman added a comment - This is the wsdl, I didn't generate any code myself, I used the ServiceClient directly.
        Hide
        Srinath Perera added a comment -

        This was not a Code gen bug. problem was soap action was set as incoming action at client side instead of outgoing action. I Placed a check set values differently for client and server and that seem to fix it.

        Show
        Srinath Perera added a comment - This was not a Code gen bug. problem was soap action was set as incoming action at client side instead of outgoing action. I Placed a check set values differently for client and server and that seem to fix it.

          People

          • Assignee:
            Amila Chinthaka Suriarachchi
            Reporter:
            Brecht Yperman
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development