Menu

ActionMismatch (WebService response)

Help
Jesus
2014-07-09
2014-07-09
  • Jesus

    Jesus - 2014-07-09

    Hello all,

    Recently I downloaded the HIEOS project in order to integrate an IHE profile into a eHealth platform we are developing. After several attemps, I finally was able to install and deploy your project in our development environment. Though at first sight it seems to cover all our needs, I wasn´t able to invoke the web services deployed in your project. In the following lines I attach both the request and response message for one of the web services (RetrieveDocumentSetRequest)

    REQUEST:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
    <soapenv:Header>
    <wsa:To soapenv:mustUnderstand="true">http://localhost:8080/axis2/services/xdsrepositoryb</wsa:To>
    <wsa:MessageID>urn:uuid:DCD262C64C22DB97351256303951276</wsa:MessageID>
    <wsa:Action soapenv:mustUnderstand="true">urn:ihe:iti:2007:RetrieveDocumentSet</wsa:Action>
    </soapenv:Header>
    <soapenv:Body>
    <RetrieveDocumentSetRequest xmlns="urn:ihe:iti:xds-b:2007" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <DocumentRequest>
    <RepositoryUniqueId>1.19.6.24.109.42.1.5</RepositoryUniqueId>
    <DocumentUniqueId>2009.9.1.1573</DocumentUniqueId>
    </DocumentRequest>
    </RetrieveDocumentSetRequest>
    </soapenv:Body>
    </soapenv:Envelope>

    RESPONSE:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
    <wsa:Action>http://www.w3.org/2005/08/addressing/fault</wsa:Action>
    <wsa:FaultDetail>
    <wsa:ProblemHeaderQName>wsa:Action</wsa:ProblemHeaderQName>
    </wsa:FaultDetail>
    </soapenv:Header>
    <soapenv:Body>
    <soapenv:Fault xmlns:wsa="http://www.w3.org/2005/08/addressing">
    <faultcode>wsa:ActionMismatch</faultcode>
    <faultstring>A header representing a Message Addressing Property is not valid and the message cannot be processed</faultstring>
    <detail>
    <Exception>org.apache.axis2.AxisFault: A header representing a Message Addressing Property is not valid and the message cannot be processed
    at org.apache.axis2.addressing.AddressingFaultsHelper.triggerAddressingFault(AddressingFaultsHelper.java:373)
    at org.apache.axis2.addressing.AddressingFaultsHelper.triggerActionMismatchFault(AddressingFaultsHelper.java:222)
    at org.apache.axis2.handlers.addressing.AddressingInHandler.extractActionInformation(AddressingInHandler.java:533)
    at org.apache.axis2.handlers.addressing.AddressingInHandler.extractAddressingInformation(AddressingInHandler.java:239)
    at org.apache.axis2.handlers.addressing.AddressingInHandler.invoke(AddressingInHandler.java:152)
    at org.apache.axis2.engine.Phase.invoke(Phase.java:317)
    at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:264)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:163)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.catalina.core.ApplicationFilterChain.servletService(ApplicationFilterChain.java:427)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:315)
    at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:287)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:218)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:94)
    at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:98)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:222)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:166)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:648)
    at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:593)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:587)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:1093)
    at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:291)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.invokeAdapter(DefaultProcessorTask.java:666)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:597)
    at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:872)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263)
    at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214)
    at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:382)
    at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:264)
    at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106)</Exception>
    </detail>
    </soapenv:Fault>
    </soapenv:Body>
    </soapenv:Envelope>

    I hope somebody might help me.

    Best regards

     
  • Scott

    Scott - 2014-07-09

    It looks like you are using soap1.1, in which case, I think the soapaction http header is required (not the action element in the soap message, but the actual HTTP header.) Is that header being set, and does it match the action from the soap message? If you switch to soap1.2, it might not be an issue.

     

Log in to post a comment.