Session 骡子3.2。如何计算流中的空会话变量?
如何在此选项中检查会话变量是否为null或空 这对我不起作用Session 骡子3.2。如何计算流中的空会话变量?,session,groovy,mule,evaluator,Session,Groovy,Mule,Evaluator,如何在此选项中检查会话变量是否为null或空 这对我不起作用 <processor-chain doc:name="Processor Chain"> <choice> <when evaluator="groovy" expression="#[header:session:countryCode] != "> <logger me
<processor-chain doc:name="Processor Chain">
<choice>
<when evaluator="groovy" expression="#[header:session:countryCode] != ">
<logger message="Valid Country Id" level="INFO" doc:name="Logger"/>
</when>
<otherwise>
<logger message="Invalid Country Id" level="INFO" doc:name="Logger"/>
</otherwise>
</choice>
</processor-chain>
我也试过了还有!=null您使用的groovy表达式无效。应该是:
...
<when expression="message.getProperty('countryCode',org.mule.api.transport.PropertyScope.SESSION)!=null
|| message.getProperty('countryCode',org.mule.api.transport.PropertyScope.SESSION)!=''"
evaluator="groovy">
...
。。。
...
您也可以使用Header evaluator访问属性,但我不确定您是否可以通过计算确定它是null还是空的如果您使用的是Mule 3.3.x,最好使用MEL而不是Groovy:
<when expression="#[org.mule.util.StringUtils.isNotEmpty(sessionVars.countryCode)]">
谢谢你的帮助,丹尼尔,但这并不能解决我的问题。如果值是空字符串,它将无法捕获它。在我的答案中添加了空字符串条件,如果变量不是空的,但实际上没有设置,“.”符号将引发异常。要处理未设置的变量,也可以使用True:如果存在变量不存在的风险,sessionVars['countryCode']
是一种方法。