Как использовать оператор 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) в заголовке.
Я надеюсь, что это помогает.:)