骡子 message.payload 和有效载荷
Mule message.payload and payload
我有一个 Mule 表达式语言表达式:
<set-payload value="#[message.payload.hasNext() ? message.payload.next(): null]" doc:name="Set Payload"/>
<choice doc:name="Choice">
<when expression="#[message.payload != null]">
我正在尝试遍历 ConsumerIterator
并收到错误
Execution of the expression "message.payload.hasNext() ? message.payload.next(): null" failed. (org.mule.api.expression.ExpressionRuntimeException)
org.mule.el.mvel.MVELExpressionLanguage:202 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/expression/ExpressionRuntimeException.html)
6. Execution of the expression "message.payload.hasNext() ? message.payload.next(): null" failed. (org.mule.api.expression.ExpressionRuntimeException). Message payload is of type: ConsumerIterator (org.mule.api.transformer.TransformerMessagingException)
org.mule.transformer.AbstractTransformer:135 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerMessagingException.html)
我的解决方案是重写没有 message.
前缀的代码:
<set-payload value="#[payload.hasNext() ? payload.next(): null]" doc:name="Set Payload"/>
<choice doc:name="Choice">
<when expression="#[payload is NullPayload]">
#[message.payload]和#[payload]有什么区别?
如果 payload
是 NullPayload
的实例,为什么 payload.hasNext()
不抛出 Exception
?
据我所知,最佳做法是使用 #[message.payload]
而不是 #[payload]
。
我正在使用 Mule 3.6.2。
message.payload
和payload
没有区别。 Payload 是为了与 Mule 2 兼容而留在那里的快捷方式。
时不时会出现一个问题,关于两者之间的差异,只是一些小麻烦,但在这种情况下,我相信你应该尝试 message.payload is NullPayload
。
我通过将 set-payload
分配给 false
或一个空的 String
而不是 null
解决了这个问题:
<set-payload value="#[message.payload.hasNext() ? message.payload.next(): 'none']" doc:name="Set Payload"/>
即使分配null
在批处理过程中也无效,最好分配一些其他String
。现在我可以使用 #[message.payload]
:
<logger message="Query: #[message.payload]" level="INFO" doc:name="Logger"/>
我有一个 Mule 表达式语言表达式:
<set-payload value="#[message.payload.hasNext() ? message.payload.next(): null]" doc:name="Set Payload"/>
<choice doc:name="Choice">
<when expression="#[message.payload != null]">
我正在尝试遍历 ConsumerIterator
并收到错误
Execution of the expression "message.payload.hasNext() ? message.payload.next(): null" failed. (org.mule.api.expression.ExpressionRuntimeException)
org.mule.el.mvel.MVELExpressionLanguage:202 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/expression/ExpressionRuntimeException.html)
6. Execution of the expression "message.payload.hasNext() ? message.payload.next(): null" failed. (org.mule.api.expression.ExpressionRuntimeException). Message payload is of type: ConsumerIterator (org.mule.api.transformer.TransformerMessagingException)
org.mule.transformer.AbstractTransformer:135 (http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/api/transformer/TransformerMessagingException.html)
我的解决方案是重写没有 message.
前缀的代码:
<set-payload value="#[payload.hasNext() ? payload.next(): null]" doc:name="Set Payload"/>
<choice doc:name="Choice">
<when expression="#[payload is NullPayload]">
#[message.payload]和#[payload]有什么区别?
如果
payload
是NullPayload
的实例,为什么payload.hasNext()
不抛出Exception
?
据我所知,最佳做法是使用 #[message.payload]
而不是 #[payload]
。
我正在使用 Mule 3.6.2。
message.payload
和payload
没有区别。 Payload 是为了与 Mule 2 兼容而留在那里的快捷方式。
时不时会出现一个问题,关于两者之间的差异,只是一些小麻烦,但在这种情况下,我相信你应该尝试 message.payload is NullPayload
。
我通过将 set-payload
分配给 false
或一个空的 String
而不是 null
解决了这个问题:
<set-payload value="#[message.payload.hasNext() ? message.payload.next(): 'none']" doc:name="Set Payload"/>
即使分配null
在批处理过程中也无效,最好分配一些其他String
。现在我可以使用 #[message.payload]
:
<logger message="Query: #[message.payload]" level="INFO" doc:name="Logger"/>