Apache camel 如何在camel简单xml dsl中使用in运算符?

Apache camel 如何在camel简单xml dsl中使用in运算符?,apache-camel,spring-camel,camel-blueprint,Apache Camel,Spring Camel,Camel Blueprint,我正在使用Camel 2.17.0。我需要在blueprint.xml文件中以简单语言使用in运算符,如下所示 '草稿,审阅'中的${header.STATUS} .. 但是,它不工作,并引发以下异常: org.apache.camel.cameleExecutionException:在exchange上执行时发生异常:exchange[ID-A5668784-61983-157987128661-9-6] 位于org.apache.camel.util.ObjectHelper.wrapC

我正在使用Camel 2.17.0。我需要在blueprint.xml文件中以简单语言使用in运算符,如下所示


'草稿,审阅'中的${header.STATUS}
..


但是,它不工作,并引发以下异常:

org.apache.camel.cameleExecutionException:在exchange上执行时发生异常:exchange[ID-A5668784-61983-157987128661-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)

顺便说一下,我已经使用choice/when条件很长时间了。然后我尝试使用| | and或运算符,如下所示:

<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>
(${header.STATUS.contains(“草稿”)}或${header.STATUS.contains(“审阅”)})
(${header.STATUS}包含'Draft'| |${header.STATUS}包含'Review')
(${header.STATUS}包含'Draft'或${header.STATUS}包含'Review')

在所有情况下,它都抛出相同的异常。请帮忙。提前谢谢

最后你可能会失去那些额外的“()”(括号)。 你能试试这样的吗

<simple>${header.STATUS} contains'Draft' or ${header.STATUS} contains 'Review'</simple>
${header.STATUS}包含'Draft'或${header.STATUS}包含'Review'
我预先假定您正在标题中设置草稿(字符串)值


我希望这能有所帮助

获取最接近的值,但需要使用Java执行此操作。您不能利用JavaDSL来实现这一点吗?我们已经使用XMLDSL两年多了。我们不打算使用Java。非常感谢您的回复。是的,我在标题中设置了草稿(字符串)值。我决定采用另一种方法,将or逻辑移到处理器上。这对我的案子有好处。