这里的任何帮助将不胜感激:)
我的骆驼路线XML文件中包含以下代码:
<choice>
<when>
<simple>${header.CamelHttpQuery} not contains '%'</simple>
<process ref="firstResponseTransformer"/>
</when>
<otherwise>
<process ref="secondResponseTransformer"/>
</otherwise>
</choice>
(我也尝试过
!contains
)如您所见,我想根据条件去不同的班级准备我的回答。
通过在路由中先前命中的处理器中使用断点,我可以看到exchange> in> headers> CamelHttpQuery的值是
""
,但是无论条件是否为真,否则标记中的转换器始终是一个被击中。根据Camel文档,该简单语句对我来说似乎是正确的,并且我在代码库中还有其他一些简单语句,它们似乎运行良好。
任何人都知道为什么简单的样式在应为真时不起作用?
完全卡住了。提前致谢。
骆驼版本2.12.4
编辑:我认为这是因为我需要将
header.CamelHttpQuery
从字符转换为字符串,有人知道如何在Simple中做到这一点吗? 最佳答案
问题是我的header.CamelHttpQuery是不是字符串的字符。
正如Bedla在上述评论中所建议的,我修复了:<simple>${headerAs(CamelHttpQuery,String)} not contains '%'</simple>