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