终止当前的camel交换

时间:2018-01-09 06:23:17

标签: apache-camel

我正在集群环境中处理文件。群集工作正常。它仅在一台服务器上处理。 但是在第二台服务器上它标识为重复但仍然执行格式路由delete=true

错误:

  

org.apache.camel.component.file.GenericFileOperationFailedException:无法删除文件:

我将标题 CamelRouteStop 设置为true,但交换机仍然尝试删除文件,而不是停止执行路径。

如果重复,我需要的是结束路线。

<camelContext xmlns="http://camel.apache.org/schema/spring">
    <route>
        <from uri="smb:url?delete=true"/>
        <idempotentConsumer messageIdRepositoryRef="myRepo">
            <header>messageId</header>
            <setHeader headerName="fileExist">
                    <simple>true</simple>
                </setHeader>
        </idempotentConsumer>
        <when>
                <simple>${header.fileExist} == null</simple>
                <log message="File ${header.CamelFileName} processing/processed by other Nodes - DUPLICATE" loggingLevel="INFO" />
                <setHeader headerName="CamelRouteStop">
                    <simple  <simple resultType="java.lang.Boolean">true</simple>>true</simple>
                </setHeader>
            </when>
    </route>
</camelContext>

1 个答案:

答案 0 :(得分:0)

对于CamelRouteStop,您需要使用setProperty,而不是setHeader