2017-04-12 80 views
1

我需要获取唯一的ID以通过日志跟踪消息。 我正在使用WSO2 ESB 4.8.1。 我发现了一篇与WSO2 ESB 5.0.0相关的文章。 http://nuwanzone.blogspot.it/2016/12/wso2-esb-tracing-messages-through-logs.html。 它描述了如何使用MessageContext对象为每个消息设置唯一的ID,以便我可以从消息流中的任何位置访问它。 是否有可能在WSO2 ESB 4.8.1中实现类似的解决方案? (移植)在WSO2 ESB 4.8.1中的解决方案? 你知道不同的解决方案吗?通过WSO2 ESB中的日志跟踪消息4.8.1

+0

如果您正在处理SOAP消息,则可以使用MessageID属性。该属性在调解器中使用常规的get-property()XPath函数是可用的。 –

+0

是的,你不能使用旧版本。 –

+0

谢谢@PhilippeSevestre的回答。 是的,我处理SOAP消息。 我会尽快尝试 在此先感谢。 –

回答

1

您可以在启动时将MessageID保存在属性中,然后将其添加到您的日志介体中。示例:

<property description="SetMessageUUID" expression="fn:substring-after(get-property('MessageID'), 'urn:uuid:')" name="MessageUUID" scope="default" type ="STRING"/> 
<log> 
    <property name="Step" expression="Request service A"/> 
    <property name="ID" expression="get-property('MessageUUID')"/> 
</log> 
<call> 
..... 
</call> 
<log> 
    <property name="Step" expression="Response service A"/> 
    <property name="ID" expression="get-property('MessageUUID')"/> 
</log>