将 wso2 esb request/responses 记录到数据库

log wso2 esb request/responses to database

我想构建一个记录器来记录所有传入的请求及其对数据库的响应。为此,我创建了一个 axis2 模块,它应该在流入和流出中执行此操作——我不想从序列中触发日志记录,因为那样我就需要将记录器放入我的所有服务中。

我的问题是:如何将 ESB 中的传入消息与 return 消息相关联?我认为这就是 Synapse 的用武之地,但我无法找到 link 消息的正确属性:我无法使用 messageId 或 correlationid 来执行此操作。

有没有办法访问 axis2 处理程序中消息的 Synapse 属性?

Axis2 模块是正确的选择。要识别请求和响应,您可以检查 messageID。如果您想在相关的响应消息上下文中访问请求消息上下文,请尝试以下代码块;

MessageContext requestMessageCtx = responseMessageCtx.getOperationContext()
      .getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE);

这是一个blog post