mule esb

时间:2015-07-22 13:39:20

标签: xml web-services mule

mule esb中#[message.payloadAs(java.lang.String)]的目的是什么?

有人可以用一个例子来解释我。 从webservice获得对我的mule esb的回复。当我使用#[payload]放置简单的记录器时,我能够在日志中看到一些简单的哈希码,如@ 1b8353(但不是有效载荷消息xml)。但是当使用#[message.payloadAs(java.lang.String)]进行记录时,我能够清楚地看到有效负载xml被记录。有人可以清楚地解释其目的吗?

请评论进一步澄清!!!!

1 个答案:

答案 0 :(得分:3)

#[message.payloadAs(java.lang.String)]将尝试将有效负载转换为给定的所需类。在这种情况下是一个字符串。

仅仅记录payload将记录当前有效负载表示的任何内容。

方法payloadAs(Class<T> outpuTType)位于Message上下文类中,而后者依次调用MuleMessage.getPayloadAs(Class<T> outputType)我认为:

http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/MuleMessage.html#getPayload(java.lang.Class)

  

将尝试使用所需的消息获取此消息的有效负载   班级类型。这将尝试解决可以执行此操作的变压器   转型。如果找不到变压器则会出现异常   抛出。将检查添加到注册表中的任何变换器   compatibility参数:outputType - 所需的返回类型   返回:此消息的转换后的有效内容。注意这个方法   除非有效载荷是一个,否则不会改变此消息的有效载荷   InputStream,在这种情况下将读取流并且有效负载将被读取   成为完全读取的流。抛出:TransformerException - 如果a   无法找到变压器或转换期间出现错误   有效载荷