2015-02-19 3 views
3

Как я могу преобразовать свойство на Apache Camel Exchange в верхний регистр, в Apache Camel язык выражения?Как преобразовать свойство Exchange в верхний регистр в 'simple'?

например.

.when(simple("${property.countryCode.toUpperCase} regex 'NO?'")) 

Но я получаю:

org.apache.camel.language.bean.RuntimeBeanExpressionException: 
Failed to invoke method: .toUpperCase on null 

Я проверил, что моя собственность действительно существует через .log("${property.countryCode}").

Это не должно быть так сложно, чтобы получить toUpperCase в Apache Simple (но это так).

Я не хочу, чтобы сделать toUpperCase в Java или Groovy, или любой другой - должно быть проще

+0

с использованием регулярных выражений без учета регистра не вариант ? –

+0

Да, но это немного грязно. Регулярное выражение в этом случае было бы '([Nn] [Oo])?', Если я правильно понимаю. Кроме того, есть другие экземпляры, которые я хотел бы преобразовать в верхний регистр. Кстати, моя собственность исходит из выражения xpath, но XPath 2.0 (и функция 'upper-case()') не поддерживаются готовыми apache camel ... – vikingsteve

ответ

5

Попробуйте

.when(simple("${property.countryCode.toUpperCase()} regex 'NO?'")) 
+0

Отлично, спасибо Майкл – vikingsteve

Смежные вопросы