mule esb中#[message.payloadAs(java.lang.String)]的目的是什么?
有人可以用一个例子来解释我。 从webservice获得对我的mule esb的回复。当我使用#[payload]放置简单的记录器时,我能够在日志中看到一些简单的哈希码,如@ 1b8353(但不是有效载荷消息xml)。但是当使用#[message.payloadAs(java.lang.String)]进行记录时,我能够清楚地看到有效负载xml被记录。有人可以清楚地解释其目的吗?
请评论进一步澄清!!!!
答案 0 :(得分:3)
#[message.payloadAs(java.lang.String)]
将尝试将有效负载转换为给定的所需类。在这种情况下是一个字符串。
仅仅记录payload
将记录当前有效负载表示的任何内容。
方法payloadAs(Class<T> outpuTType)
位于Message上下文类中,而后者依次调用MuleMessage.getPayloadAs(Class<T> outputType)
我认为:
将尝试使用所需的消息获取此消息的有效负载 班级类型。这将尝试解决可以执行此操作的变压器 转型。如果找不到变压器则会出现异常 抛出。将检查添加到注册表中的任何变换器 compatibility参数:outputType - 所需的返回类型 返回:此消息的转换后的有效内容。注意这个方法 除非有效载荷是一个,否则不会改变此消息的有效载荷 InputStream,在这种情况下将读取流并且有效负载将被读取 成为完全读取的流。抛出:TransformerException - 如果a 无法找到变压器或转换期间出现错误 有效载荷