Mule 3.3表达式 - 忽略具有流量变量比较的情况

时间:2013-10-02 14:27:15

标签: java mule esb

我想将流变量与文字字符串进行比较,并忽略变量的大小写。例如

...
<when expression="#[StringUtils.upperCase(flowVars['officeCode']) == 'REGION1']">
....

产生的错误是[错误:无法访问:StringUtils;在课堂上:null] [近:{...未知....}]

我也试过

<when expression="#[regex('[a-zA-Z0-9]+',flowVars['officeCode'],Pattern.CASE_INSENSITIVE) == 'REGION1']">

对于正则表达式比较,我收到错误“text is not a string”

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:5)

对于第一个,您需要完全限定StringUtils类,即

#[org.apache.commons.lang3.StringUtils.upperCase(.....)]

或者您可以全局导入该类,以便您可以在不使用完整限定符的情况下引用它:

<configuration>
 <expression-language>
 <import class=”org.apache.commons.lang3.StringUtils” />
 </expression-language>
</configuration>

或者你可以在String上使用equalsIgnoreCase:

<when expression="#[flowVars['officeCode'].equalsIgnoreCase('REGION1')]">

只要#[flowVars ['officeCode']实际上是一个String