用于比较java对象属性值的Mule表达式

时间:2015-09-17 11:12:49

标签: comparison expression mule

我正在尝试比较mule表达式中的java对象值,如下所示

#[message.EventHandlerMessage.eventId ==' SEND_NOTIFICATION']

上述表达式失败,执行表达式" message.EventHandlerMessage.eventId ==' SEND_IMEX'"失败。 (org.mule.api.expression.ExpressionRuntimeException)。消息有效内容的类型为:EventHandlerMessage(org.mule.api.MessagingException)

带有Logger组件的

java对象内容

LoggerMessageProcessor- INFO - - - message =" EventHandlerMessage [refId = 10002,eventId = SEND_NOTIFICATION,eventRefNo = 10000000001212]"

如何将Eventhandler消息中的eventid与mule表达式进行比较?

2 个答案:

答案 0 :(得分:0)

为什么你的错误在你的比较中显示“message.EventHandlerMessage.eventId =='SEND_IMEX'”,如#[message.EventHandlerMessage.eventId =='SEND_NOTIFICATION']。

在尝试比较之前,尝试使用MEL打印该值并查看它是否正在打印,然后您可以进行比较。

答案 1 :(得分:0)

消息上下文中没有属性message.EventHandlerMessage。您可以在message上访问以下属性:http://www.mulesoft.org/docs/site/current3/apidocs/org/mule/el/context/MessageContext.html

如果您的有效负载是EventHandlerMessage.class的实例,请尝试使用此代码:

#[message.payload.eventId]