Soap 在HL7的情况下,如何在WSO2中介中获取原始文本正文?

Soap 在HL7的情况下,如何在WSO2中介中获取原始文本正文?,soap,wso2,wso2esb,wso2carbon,hl7,Soap,Wso2,Wso2esb,Wso2carbon,Hl7,我在WSO2 EI中实现了一个简单的API服务。输入端点配置为接受“application/edi-hl7”,本质上是为了读取hl7消息。我对消息执行某些转换,然后需要使用JSON进行响应。因此,作为响应JSON负载的一部分,我还希望将原始HL7消息作为请求负载发送,并且也以原始形式发送(不是XML/JSON格式)。 假设我的输入是 MSH^ ~\&| ULTRA|U V3.1 | LAV | Web Portal | Web Portal | 201810030949 | ORU ^ R01

我在WSO2 EI中实现了一个简单的API服务。输入端点配置为接受“application/edi-hl7”,本质上是为了读取hl7消息。我对消息执行某些转换,然后需要使用JSON进行响应。因此,作为响应JSON负载的一部分,我还希望将原始HL7消息作为请求负载发送,并且也以原始形式发送(不是XML/JSON格式)。 假设我的输入是

MSH^ ~\&| ULTRA|U V3.1 | LAV | Web Portal | Web Portal | 201810030949 | ORU ^ R01 | 279857418 | p | 2.3.1 | AL | AL | AU 皮德| 3914950 | 2171042591 | ^澳大利亚^ MC ^ 111111 ^ ^ ^ UR ^ 5548391 ^ ^ ^ ^超相关^ ^凯^布鲁斯^ ^ ^ 19630604 |米| | | 11 NJUONA PV1 | O | CSLI | KINUYMBER | 214082JL | KOPRA | MARUTI | KAYBB | DR ORC | RE | 18-15768981-000-0 | R 4月4日,4月12日,4月12日,4月12日,4月14日,4月12日,1月12日,1月24日,4月14日,4月14日,4月12日,4月12日,4日,4月12日,4月14日,4月14日,18日,4月14日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,18日,对拉维拉维拉维拉维拉维拉维拉维维维维利利利利利(20141244日,周四周四周四周四周四周四周四周四周四周四周四周四,周四周四周四,周四周四周四,周四,周四周四周四,周四,周四,周四周四周四周四周四,本本本本周四周四周四周四,周四,周四周四周四,周四周四周四,周四周四周四,2014;| I | | ^^ 20180914|

样本输出为

{"message": "MSH|^~\&|.....", "Otherkeys": "someVal"}
作为
消息的一部分
,我希望原始消息保持原样,而不是SOAP正文。 注意:我需要删除每行末尾的
\n\r

主要问题是如何在中介流中以原始形式获取原始消息。

下面是一个示例API。希望能有帮助。 只需将payloadFactory Mediator放在序列中的适当位置

<api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test">
   <resource methods="POST" uri-template="/testHL">
      <inSequence>
         <log level="full"/>
         <payloadFactory media-type="json">
            <format>{"message": "$1", "Otherkeys": "someVal"}</format>
            <args>
               <arg evaluator="xml" expression="$body/*[1]"/>
            </args>
         </payloadFactory>
         <respond/>
      </inSequence>
   </resource>
</api>

{“message”:“$1”,“otherkey”:“someVal”}

下面是一个示例API。希望能有帮助。 只需将payloadFactory Mediator放在序列中的适当位置

<api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test">
   <resource methods="POST" uri-template="/testHL">
      <inSequence>
         <log level="full"/>
         <payloadFactory media-type="json">
            <format>{"message": "$1", "Otherkeys": "someVal"}</format>
            <args>
               <arg evaluator="xml" expression="$body/*[1]"/>
            </args>
         </payloadFactory>
         <respond/>
      </inSequence>
   </resource>
</api>

{“message”:“$1”,“otherkey”:“someVal”}

你能给我们看一下你的序列的XML吗?你能给我们看一下你的序列的XML吗?你能解释一下你在一个参数中提到的表达式字符串吗?它对我不起作用,因为我把消息读成“application/edi-hl7”。我的请求内容类型已设置为application/edi-hl7。@AashishP,如果您向我展示您的方法,我可以提供更好的帮助。您能否将Log mediator置于level=“full”之前,并将结果显示在此处?对于$body/*[1],这只是意味着-获取消息上下文的主体,并获取它的第一个子元素。您能解释一下您在参数中提到的表达式字符串吗?它对我不起作用,因为我将消息读为“application/edi-hl7”。我的请求内容类型已设置为application/edi-hl7。@AashishP,如果您向我展示您的方法,我可以提供更好的帮助。您能否将Log mediator置于level=“full”之前,并将结果显示在此处?对于$body/*[1],这只意味着-获取消息上下文的主体,并获取它的第一个子元素。