Как использовать оператор in в camel simple xml dsl?

Я использую Camel 2.17.0. Мне нужно использовать оператор in на простом языке в файле blueprint.xml, как показано ниже

<choice id="_choice3"> <when id="_when3"> <simple>${header.STATUS} in 'Draft,Review'</simple> ......

Однако это не работает и выдает следующее исключение:

org.apache.camel.CamelExecutionException: исключение произошло во время выполнения на обмене: Exchange[ID-A5668784-61983-1579873128661-9-6] в org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1706) org.apache.camel.builder.SimpleBuilder.createPredicate(SimpleBuilder.java:104) в org.apache.camel.builder.SimpleBuilder.matches(SimpleBuilder.java:83)

Кстати, я давно использую условие выбора / когда. Затем я попытался использовать || Оператор and or следующим образом:

<simple>(${header.STATUS.contains("Draft")} or ${header.STATUS.contains("Review")})</simple>
<simple>(${header.STATUS} contains 'Draft' || ${header.STATUS} contains 'Review')</simple>
<simple>(${header.STATUS} contains 'Draft' or ${header.STATUS} contains 'Review')</simple>

Во всех случаях возникает одно и то же исключение. Пожалуйста помоги. заранее спасибо

1 ответ

Вы можете потерять лишние "()" (квадратные скобки) в конце. Не могли бы вы попробовать что-то подобное

<simple>${header.STATUS} contains'Draft' or ${header.STATUS} contains 'Review'</simple>

Я предполагаю, что вы устанавливаете значение Draft (String) в заголовке.

Я надеюсь, что это помогает.:)

Другие вопросы по тегам