<jdbc-ee:inbound-endpoint queryTimeout="-1" doc:name="Database" connector-ref="jdbcConnector" queryKey="selectAll" pollingFrequency="10000">
<jdbc-ee:transaction action="NONE"/>
</jdbc-ee:inbound-endpoint>
<foreach doc:name="Foreach">
<choice doc:name="Choice">
<when expression="#[map-payload:destination] == SFO" >
<processor-chain doc:name="Processor Chain">
<logger level="INFO" message="Print 1"/>
</when>
<otherwise>
<logger level="INFO" message="Print 2"/>
</otherwise>
</choice>
</foreach>
当我尝试基于map-payload进行过滤时,我发现它总是遇到其他条款&amp;即使map-payload包含SFO作为目标,也不是when子句。我的表情有什么问题?
这是Log,你可以看到它总是在记录器中,否则永远不会在。
INFO 2013-11-23 14:51:33,966 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Print 2 INFO 2013-11-23 14:51:33,967 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Print 2 INFO 2013-11-23 14:51:43,955 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Payload is {DESTINATION=LAX, PRICE=5, ID=3} INFO 2013-11-23 14:51:43,955 [[ConfluexDemo].ExpreFlow2.stage1.03] org.mule.api.processor.LoggerMessageProcessor: Payload is {DESTINATION=SFO, PRICE=10, ID=2} INFO 2013-11-23 14:51:43,956 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Destination is MLT INFO 2013-11-23 14:51:43,957 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Price is 1200 INFO 2013-11-23 14:51:43,957 [[ConfluexDemo].ExpreFlow2.stage1.03] org.mule.api.processor.LoggerMessageProcessor: Destination is SFO INFO 2013-11-23 14:51:43,958 [[ConfluexDemo].ExpreFlow2.stage1.03] org.mule.api.processor.LoggerMessageProcessor: Price is 500 INFO 2013-11-23 14:51:43,959 [[ConfluexDemo].ExpreFlow2.stage1.03] org.mule.api.processor.LoggerMessageProcessor: Print 2 INFO 2013-11-23 14:51:43,961 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Print 2 INFO 2013-11-23 14:51:43,962 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Print 2 INFO 2013-11-23 14:51:43,963 [[ConfluexDemo].ExpreFlow2.stage1.02] org.mule.api.processor.LoggerMessageProcessor: Print 2 INFO 2013-11-23 14:51:43,965 [[ConfluexDemo].ExpreFlow2.stage1.03] org.mule.api.processor.LoggerMessageProcessor: Print 2 INFO 2013-11-23 14:51:43,966 [[ConfluexDemo].ExpreFlow2.stage1.03] org.mule.api.processor.LoggerMessageProcessor: Print 2
答案 0 :(得分:0)
map-payload
:如果有效负载是地图,您可以直接使用MEL获取其值。
假设您有一个名为text
的{{1}}列,则以下内容应该有效:
destination
这是有效的,因为您使用<when expression="#[message.payload.destination == 'SFO']" >
迭代此表达式周围的行。