首页 > 解决方案 > Bluepring XML中空交换的apache骆驼简单语言测试不起作用

问题描述

我正在使用 Apache Camel 2.17 并使用简单的语言来捕获空交换。它不起作用,我尝试了几种格式化方法,但它没有捕捉到空值。我相信这是我使用它的格式/语法。请指示我哪里出错了。谢谢你!

<process id="_process18" ref="csvMarshallerProcessor"/>
<process id="toReOrgCSV" ref="reOrgCSVData"/>
<choice id="_choice13">
    <when id="_when13">
        <simple>"${body}" == null</simple>
        <log id="_log22" message="body is NULL, do not send NULL body!"/>
        <stop id="_stop7"/>
    </when>
    <otherwise id="_otherwise1">

我试过了

<simple>"${body} == null"</simple>
<simple>"${body}" == null</simple>
<simple>${body} == null</simple>
<simple>${body} == 'null'</simple>

如果数据被过滤掉并且没有资格发送出去,我在之前的过程中将交换设置为空。我只想使用 Camel Spring XML。

???

标签: javanullapache-camel

解决方案


不要设置exchange为空,因为那是无效的,将消息体设置为空或空字符串等。

exchange.getIn().setBody(null);

然后你可以使用 simple 来测试它的 null,

${body} == null

或者,如果您将其设置为空文本

${body} == ''

推荐阅读