Announcement

Collapse
No announcement yet.

SOAP payload

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • SOAP payload

    Hi,

    Don't know what happened to the previous post. I have more finding.

    The channel is configured to receive pre-encoded XML message and I always get the following errors.

    I have atteched the perl SOAP client code at the end of this post.

    Please help and merry Christmas.

    Thanks,

    Charles



    ERROR 2006-12-21 14:52:02,343 [_httpConnector#30400475.http:Mirth.receiver.4] preprocessor: message == <ADT_A02 xmlns="urn:hl7-org:v2xml"><MSH><MSH.1>|</MSH.1><MSH.2>^~\&</MSH.2><MSH.3>REG</MSH.3><MSH.4>WH</MSH.4><MSH.6>CWHC</MSH.6><MSH.7><TS.1>20060201000926</TS.1></MSH.7><MSH.9><CM_MSG.1>ADT</CM_MSG.1><CM_MSG.2>A02</CM_MSG.2></MSH.9><MSH.10>9061506</MSH.10><MSH.11>P</MSH.11><MSH.12>2.2</MSH.12></MSH><EVN><EVN.1>A02</EVN.1><EVN.2><TS.1>20060201000926</TS.1></EVN.2><EVN.5>CCX</EVN.5></EVN><PID><PID.3><CM_PAT_ID.1>1333999</CM_PAT_ID.1></PID.3><PID.5><PN.1>LASTNAME15</PN.1><PN.2>FIRSTNAME15</PN.2></PID.5><PID.7><TS.1>19000101</TS.1></PID.7><PID.8>F</PID.8><PID.11><AD.1>3 1ST ST</AD.1><AD.3>PORT COQUITLAM</AD.3><AD.4>BC</AD.4><AD.5>A1A 1A1</AD.5></PID.11><PID.13>(555)555-5555</PID.13><PID.16>M</PID.16><PID.18><CK.1>3603977</CK.1></PID.18><PID.19>3333 111 111</PID.19></PID><PV1><PV1.2>I</PV1.2><PV1.3><CM_INTERNAL_LOCATION.1>DS</CM_INTERNAL_LOCATION.1><CM_INTERNAL_LOCATION.2>DS1 0</CM_INTERNAL_LOCATION.2><CM_INTERNAL_LOCATION.3>10</CM_INTERNAL_LOCATION.3></PV1.3><PV1.4>E</PV1.4><PV1.6><CM_INTERNAL_LOCATION.1>DSO</CM_INTERNAL_LOCATION.1><CM_INTERNAL_LOCATION.2>LD0 3</CM_INTERNAL_LOCATION.2><CM_INTERNAL_LOCATION.3>03</CM_INTERNAL_LOCATION.3></PV1.6><PV1.10>OBS</PV1.10><PV1.14>1</PV1.14><PV1.17><CN.1>10236</CN.1><CN.2>LASTNAME16</CN.2><CN.3>FIRSTNAME16</CN.3><CN.4>M</CN.4></PV1.17><PV1.18>OB</PV1.18><PV1.19><CM_PAT_ID.1>4007467</CM_PAT_ID.1></PV1.19><PV1.20><CM_FINANCE.1>PRO</CM_FINANCE.1></PV1.20><PV1.29>N</PV1.29><PV1.41>A</PV1.41><PV1.44><TS.1>20000101010101</TS.1></PV1.44></PV1><PV2><PV2.2><CE.1>LDR</CE.1></PV2.2><PV2.3><CE.1>WALKING</CE.1></PV2.3></PV2><OBX/><ZIB><ZIB.1>1</ZIB.1><ZIB.2>M</ZIB.2><ZIB.23>BCHP</ZIB.23></ZIB><ZIB><ZIB.1>2</ZIB.1><ZIB.2>SP</ZIB.2><ZIB.23>SELF</ZIB.23></ZIB><Z01><Z01.10>1</Z01.10><Z01.12>4:28 PM</Z01.12><Z01.13>WALKING</Z01.13><Z01.16>000000</Z01.16><Z01.20>N</Z01.20></Z01><ZTM><ZTM.2>1</ZTM.2><ZTM.4>N</ZTM.4><ZTM.9>YES</ZTM.9><ZTM.10>NO</ZTM.10><ZTM.14>YES</ZTM.14><ZTM.15>N</ZTM.15><ZTM.17>NO</ZTM.17><ZTM.18>D</ZTM.18><ZTM.19>D</ZTM.19><ZTM.20>NO</ZTM.20><ZTM.21>NO</ZTM.21></ZTM></ADT_A02>
    WARN 2006-12-21 14:52:02,343 [_httpConnector#30400475.http:Mirth.receiver.4] com.webreach.mirth.server.mule.transformers.HL7ToM essageObject: error transforming message
    com.webreach.mirth.model.converters.SerializerExce ption: ca.uhn.hl7v2.parser.EncodingNotSupportedException: Can&#039;t parse message beginning <ADT_A02 xmlns="urn:hl7-org:v2xml"><MSH><MSH.1>|</
    at com.webreach.mirth.model.converters.HAPIMessageSer ializer.deserialize(HAPIMessageSerializer.java:54)
    at com.webreach.mirth.server.mule.transformers.HL7ToM essageObject.doTransform(HL7ToMessageObject.java:7 2)
    at org.mule.transformers.AbstractTransformer.transfor m(AbstractTransformer.java:197)
    at org.mule.transformers.AbstractTransformer.transfor m(AbstractTransformer.java:200)
    at org.mule.transformers.AbstractTransformer.transfor m(AbstractTransformer.java:200)
    at org.mule.impl.MuleEvent.getTransformedMessage(Mule Event.java:251)
    at org.mule.routing.inbound.SelectiveConsumer.isMatch (SelectiveConsumer.java:61)
    at org.mule.routing.inbound.InboundMessageRouter.rout e(InboundMessageRouter.java:75)
    at org.mule.providers.AbstractMessageReceiver$Default InternalMessageListener.onMessage(AbstractMessageR eceiver.java:492)
    at org.mule.providers.AbstractMessageReceiver.routeMe ssage(AbstractMessageReceiver.java:271)
    at org.mule.providers.AbstractMessageReceiver.routeMe ssage(AbstractMessageReceiver.java:230)
    at org.mule.providers.soap.ServiceProxy$AxisServiceHa ndler.invoke(ServiceProxy.java:141)
    at $Proxy1.acceptMessage(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.apache.axis.providers.java.RPCProvider.invokeM ethod(RPCProvider.java:388)
    at org.apache.axis.providers.java.RPCProvider.process Message(RPCProvider.java:283)
    at org.apache.axis.providers.java.JavaProvider.invoke (JavaProvider.java:323)
    at org.mule.providers.soap.axis.extensions.MuleProvid er.invoke(MuleProvider.java:69)
    at org.apache.axis.strategies.InvocationStrategy.visi t(InvocationStrategy.java:32)
    at org.apache.axis.SimpleChain.doVisiting(SimpleChain .java:118)
    at org.apache.axis.SimpleChain.invoke(SimpleChain.jav a:83)
    at org.apache.axis.handlers.soap.SOAPService.invoke(S OAPService.java:453)
    at org.apache.axis.server.AxisServer.invoke(AxisServe r.java:281)
    at org.mule.providers.soap.axis.AxisServiceComponent. doPost(AxisServiceComponent.java:525)
    at org.mule.providers.soap.axis.AxisServiceComponent. onCall(AxisServiceComponent.java:137)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.mule.model.DynamicEntryPoint.invokeCurrent(Dyn amicEntryPoint.java:168)
    at org.mule.model.DynamicEntryPoint.invoke(DynamicEnt ryPoint.java:90)
    at org.mule.impl.DefaultLifecycleAdapter.onCall(Defau ltLifecycleAdapter.java:177)
    at org.mule.impl.DefaultLifecycleAdapter.intercept(De faultLifecycleAdapter.java:232)
    at org.mule.impl.InterceptorsInvoker.execute(Intercep torsInvoker.java:53)
    at org.mule.impl.model.DefaultMuleProxy.onCall(Defaul tMuleProxy.java:230)
    at org.mule.impl.model.seda.SedaComponent.doSend(Seda Component.java:209)
    at org.mule.impl.model.AbstractComponent.sendEvent(Ab stractComponent.java:277)
    at org.mule.impl.MuleSession.sendEvent(MuleSession.ja va:201)
    at org.mule.routing.inbound.InboundMessageRouter.send (InboundMessageRouter.java:152)
    at org.mule.routing.inbound.InboundMessageRouter.rout e(InboundMessageRouter.java:124)
    at org.mule.providers.AbstractMessageReceiver$Default InternalMessageListener.onMessage(AbstractMessageR eceiver.java:492)
    at org.mule.providers.AbstractMessageReceiver.routeMe ssage(AbstractMessageReceiver.java:271)
    at org.mule.providers.AbstractMessageReceiver.routeMe ssage(AbstractMessageReceiver.java:243)
    at org.mule.providers.http.HttpMessageReceiver$HttpWo rker.run(HttpMessageReceiver.java:145)
    at org.mule.impl.work.WorkerContext.run(WorkerContext .java:290)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.runTask(ThreadPoolExecutor. java:650)
    at edu.emory.mathcs.backport.java.util.concurrent.Thr eadPoolExecutor$Worker.run(ThreadPoolExecutor.java :675)
    at java.lang.Thread.run(Unknown Source)



    Here is my perl SOAP client.

    ##########################
    require SOAP::Lite;

    $URL = &#039;http://localhost:8081/services/Mirth?wsdl&#039;;

    $xml = &#039;<?xml version="1.0"?><ADT_A02 xmlns="urn:hl7-org:v2xml"><MSH><MSH.1>|</MSH.1><MSH.2>^~\&</MSH.2><MSH.3>REG</MSH.3><MSH.4>WH</MSH.4><MSH.6>CWHC</MSH.6><MSH.7><TS.1>20060201000926</TS.1></MSH.7><MSH.9><CM_MSG.1>ADT</CM_MSG.1><CM_MSG.2>A02</CM_MSG.2></MSH.9><MSH.10>9061506</MSH.10><MSH.11>P</MSH.11><MSH.12>2.2</MSH.12></MSH><EVN><EVN.1>A02</EVN.1><EVN.2><TS.1>20060201000926</TS.1></EVN.2><EVN.5>CCX</EVN.5></EVN><PID><PID.3><CM_PAT_ID.1>1333999</CM_PAT_ID.1></PID.3><PID.5><PN.1>LASTNAME15</PN.1><PN.2>FIRSTNAME15</PN.2></PID.5><PID.7><TS.1>19000101</TS.1></PID.7><PID.8>F</PID.8><PID.11><AD.1>3 1ST ST</AD.1><AD.3>PORT COQUITLAM</AD.3><AD.4>BC</AD.4><AD.5>A1A 1A1</AD.5></PID.11><PID.13>(555)555-5555</PID.13><PID.16>M</PID.16><PID.18><CK.1>3603977</CK.1></PID.18><PID.19>3333 111 111</PID.19></PID><PV1><PV1.2>I</PV1.2><PV1.3><CM_INTERNAL_LOCATION.1>DS</CM_INTERNAL_LOCATION.1><CM_INTERNAL_LOCATION.2>DS1 0</CM_INTERNAL_LOCATION.2><CM_INTERNAL_LOCATION.3>10</CM_INTERNAL_LOCATION.3></PV1.3><PV1.4>E</PV1.4><PV1.6><CM_INTERNAL_LOCATION.1>DSO</CM_INTERNAL_LOCATION.1><CM_INTERNAL_LOCATION.2>LD0 3</CM_INTERNAL_LOCATION.2><CM_INTERNAL_LOCATION.3>03</CM_INTERNAL_LOCATION.3></PV1.6><PV1.10>OBS</PV1.10><PV1.14>1</PV1.14><PV1.17><CN.1>10236</CN.1><CN.2>LASTNAME16</CN.2><CN.3>FIRSTNAME16</CN.3><CN.4>M</CN.4></PV1.17><PV1.18>OB</PV1.18><PV1.19><CM_PAT_ID.1>4007467</CM_PAT_ID.1></PV1.19><PV1.20><CM_FINANCE.1>PRO</CM_FINANCE.1></PV1.20><PV1.29>N</PV1.29><PV1.41>A</PV1.41><PV1.44><TS.1>20000101010101</TS.1></PV1.44></PV1><PV2><PV2.2><CE.1>LDR</CE.1></PV2.2><PV2.3><CE.1>WALKING</CE.1></PV2.3></PV2><OBX/><ZIB><ZIB.1>1</ZIB.1><ZIB.2>M</ZIB.2><ZIB.23>BCHP</ZIB.23></ZIB><ZIB><ZIB.1>2</ZIB.1><ZIB.2>SP</ZIB.2><ZIB.23>SELF</ZIB.23></ZIB><Z01><Z01.10>1</Z01.10><Z01.12>4:28 PM</Z01.12><Z01.13>WALKING</Z01.13><Z01.16>000000</Z01.16><Z01.20>N</Z01.20></Z01><ZTM><ZTM.2>1</ZTM.2><ZTM.4>N</ZTM.4><ZTM.9>YES</ZTM.9><ZTM.10>NO</ZTM.10><ZTM.14>YES</ZTM.14><ZTM.15>N</ZTM.15><ZTM.17>NO</ZTM.17><ZTM.18>D</ZTM.18><ZTM.19>D</ZTM.19><ZTM.20>NO</ZTM.20><ZTM.21>NO</ZTM.21></ZTM></ADT_A02>&#039;;

    #print $xml."\n";

    print "Connecting to Mrith Service...\n";

    #my $soap = SOAP::Lite
    # -> service($URL)
    # -> acceptMessage ($xml);

    $service = SOAP::Lite -> uri(&#039;urn:acceptMessage&#039
    -> proxy($URL);

    $result = $service -> acceptMessage($xml)->result();

    ##################



  • #2
    Re: SOAP payload

    Merry Christmas as well! Thanks for reporting this - it seems to be an error with the way "Receive Pre-encoded XML" works. Can you add this issue to the JIRA (www.mirthproject.org/jira). We will try hard to get it in 1.3.1.
    -Chris
    Chris Lang

    Comment


    • #3
      Re: SOAP payload

      I thought of a quick fix for this - use an Outbound channel instead. You can use SOAP as the listener and it will expect XML.

      -Chris
      Chris Lang

      Comment


      • #4
        Re: SOAP payload

        Hi Chris,

        I also found that file reader with XML pre-encoded configuration also has the same problem.
        I filed a bug report, numbered MIRTH-214.

        Thanks,

        Charles

        Comment


        • #5
          Re: SOAP payload

          Charles - yep, it appears that the configuration isn&#039;t being updated to reflect the pre-encoded xml option. We are working on a fix as we speak.

          Thanks!
          -Chris
          Chris Lang

          Comment

          Working...
          X