如何在 Mule ESB 中记录 HTTP 请求的主体 (POST) (XML)
How to log HTTP Request's Body (POST) (XML) in Mule ESB
你好我正在尝试在 Mule ESB 中记录 POST 内容的内容,因为另一端接收除二进制形式的 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>
在日志中我只能看到内容的长度和其他信息,但看不到 POST 中发送的正文的实际内容。有没有可能做这样的事情?
感谢您的帮助
作为 explained in the documentation,您可以在 MEL 表达式中将有效载荷检索为字符串:
<logger level="INFO" message="#[message.payloadAs(java.lang.String)]"/>
请记住,这将反序列化 HTTP 请求输入流负载,如果您接收到巨大的负载,这可能会严重影响您的内存。
- 在 Any-point Studio 中,放置一个 Logger 组件,就在 Web Consumer 组件之前
- 在常规部分,消息:#[message.payloadAs(java.lang.String)]
级别:INFO(默认)。
我们可以使用 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 ESB 中记录 POST 内容的内容,因为另一端接收除二进制形式的 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>
在日志中我只能看到内容的长度和其他信息,但看不到 POST 中发送的正文的实际内容。有没有可能做这样的事情?
感谢您的帮助
作为 explained in the documentation,您可以在 MEL 表达式中将有效载荷检索为字符串:
<logger level="INFO" message="#[message.payloadAs(java.lang.String)]"/>
请记住,这将反序列化 HTTP 请求输入流负载,如果您接收到巨大的负载,这可能会严重影响您的内存。
- 在 Any-point Studio 中,放置一个 Logger 组件,就在 Web Consumer 组件之前
- 在常规部分,消息:#[message.payloadAs(java.lang.String)] 级别:INFO(默认)。
我们可以使用 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>