如何从Mule消息中获取原始有效载荷?

如何从Mule消息中获取原始有效载荷?,mule,Mule,在扩展AbstractTransformer的类中的Mule流中间,我需要打印以用于日志记录 从原始消息中尽可能多地返回通过SOAPUI发送给MULE的实际XML 为了知道如何获取消息,我正在尝试从RequestContext.getEvent中获取消息 但我没能找到它, 有人知道怎么做吗 目前,我正试图通过一种不推荐的方法找到我需要的东西: RequestContext.getEvent().getMessage().getPayload() 但这不是我需要的,这是: RequestCont

在扩展AbstractTransformer的类中的Mule流中间,我需要打印以用于日志记录 从原始消息中尽可能多地返回通过SOAPUI发送给MULE的实际XML

为了知道如何获取消息,我正在尝试从RequestContext.getEvent中获取消息 但我没能找到它, 有人知道怎么做吗

目前,我正试图通过一种不推荐的方法找到我需要的东西:

RequestContext.getEvent().getMessage().getPayload()
但这不是我需要的,这是:

RequestContext.getEvent().getMessage().getPayloadAsString()

不返回任何内容。

在transformer内部,是指transformMessage方法内部吗

如果是这样,您可以使用以下内容记录SOAPUI内容:

@Override
public Object transformMessage( MuleMessage message, String outputEncoding )
{
    log.info( message.getPayload() );

    ...the rest of your code here
}
如果需要访问转换器中的MuleMessage,请通过org.mule.Transformer.AbstractMessageTransformer扩展扩展,而不是扩展org.mule.Transformer.AbstractTransformer

这将使您可以覆盖此方法:

public abstract Object transformMessage(MuleMessage message,
                                    String outputEncoding)
                             throws TransformerException

在onCall方法中,我们有使用以下内容的eventContext


eventContext.getMessage.getPayload我们可以获取有效负载。

eventContext.getEvent.getMessage.getPayload 或
eventContext.getEvent.getMessage.getPayloadAsString

我在DotTransform方法的重写版本中。受保护对象DotTransferMobject src,字符串enc抛出TransformerException{..}'message.getPayload'不返回字符串,因此无法记录该字符串,并且RequestContext.getEvent.getMessage.getPayloadAsString也不工作。。它不会从AbstractMessage transformer返回任何子类,并使用transformMessage,如示例所示。在不将AbstractTransformer更改为AbstractMessageTransformer的情况下,我还可以做些什么来访问MuleMessage?我正在考虑重写公共MuleEvent processMuleEvent事件{…}不要搅乱流程。。。。AbstractMessageTransformer基类正是为您的用例而存在的:使用它。我不能使用它,因为这样我就不能重写DotTransform方法。。[无法重写AbstractMessageTransformer的最终方法]请仔细阅读我的回答:您需要重写transformMessage而不是DotTransform。