如何在Mule ESB中记录HTTP请求的主体(POST)(XML)

如何在Mule ESB中记录HTTP请求的主体(POST)(XML),mule,mule-studio,Mule,Mule Studio,您好,我正在尝试在Mule ESB中记录POST内容的内容,因为另一端接收除ContactId之外的所有内容,ContactId是二进制的。我们正试图找出错误所在。这里是流程图 <flow name="ContactUpdate"> <http:inbound-endpoint exchange-pattern="request-response" host="host" port="port" path="ContactUpdate" doc:name="HTTP"/

您好,我正在尝试在Mule ESB中记录POST内容的内容,因为另一端接收除ContactId之外的所有内容,ContactId是二进制的。我们正试图找出错误所在。这里是流程图

<flow name="ContactUpdate">
    <http:inbound-endpoint exchange-pattern="request-response" host="host" port="port" path="ContactUpdate" doc:name="HTTP"/>
    <logger level="INFO" doc:name="Logger" message="#[payload]"/>
    <ws:consumer config-ref="Web_Service_Consumer" operation="UpdateContact" doc:name="UpdateContact"/>
</flow>
在日志中,我只能看到内容的长度和其他信息,但看不到邮寄的正文的实际内容。有可能做这样的事吗

感谢您的帮助,您可以在MEL表达式中以字符串形式检索有效负载:

<logger level="INFO" message="#[message.payloadAs(java.lang.String)]"/>
请记住,这将反序列化HTTP请求输入流负载,如果接收到巨大负载,可能会严重影响内存。

因为,您可以在MEL表达式中以字符串形式检索负载:

<logger level="INFO" message="#[message.payloadAs(java.lang.String)]"/>
请记住,这将反序列化HTTP请求输入流负载,如果接收到巨大的负载,可能会严重影响内存

在任意point Studio中,将记录器组件放在Web使用者组件之前 在常规部分,Message:[Message.payloadAsjava.lang.String] 级别:INFODefault。 在任意point Studio中,将记录器组件放在Web使用者组件之前 在常规部分,Message:[Message.payloadAsjava.lang.String] 级别:INFODefault。
我们可以使用Mule的自动转换功能以特定格式检索消息负载,使用payloadAs:

<logger message="#[message.payloadAs(java.lang.String)]" />
您的代码可以更改为

<flow name="ContactUpdate">
    <http:inbound-endpoint exchange-pattern="request-response" host="host" port="port" path="ContactUpdate" doc:name="HTTP"/>
    <logger level="INFO" message="#[message.payloadAs(java.lang.String)]"/>
    <ws:consumer config-ref="Web_Service_Consumer" operation="UpdateContact" doc:name="UpdateContact"/>
</flow>

我们可以使用Mule的自动转换功能以特定格式检索消息负载,使用payloadAs:

<logger message="#[message.payloadAs(java.lang.String)]" />
您的代码可以更改为

<flow name="ContactUpdate">
    <http:inbound-endpoint exchange-pattern="request-response" host="host" port="port" path="ContactUpdate" doc:name="HTTP"/>
    <logger level="INFO" message="#[message.payloadAs(java.lang.String)]"/>
    <ws:consumer config-ref="Web_Service_Consumer" operation="UpdateContact" doc:name="UpdateContact"/>
</flow>

谢谢你回答David,我确实试过这样做,但可能我的语法错了,因为它现在可以工作了。谢谢!谢谢你回答David,我确实试过这样做,但可能我的语法错了,因为它现在可以工作了。谢谢!