Java верблюжий маршрут никогда не доходит до утверждения - PullRequest
0 голосов
/ 17 июня 2019

Я создаю службу, которая переносит файл в новое место на основе имени файла. Проблема в том, что второе утверждение иначе никогда не достигается, даже если первое, когда ложно (имя файла не начинается с «START»). Кроме того, из uri есть опция delete = true, возможно, это что-то влияет В результате этот файл только что удален.

        <route id="outgoing" errorHandlerRef="outgoingDeadLetterErrorHandler">
            <from uri="OutgoingSource"/>

            <choice>
                <when>
                    <simple>${file:name} starts with 'START'</simple>

                    <convertBodyTo type="java.lang.String"/>
                    <choice>
                        <when>
                            <xpath>/File/Header/@x = 'X'</xpath>
                            <to ref="OutgoingErrorDestination"/>
                        </when>
                        <when>
                            <xpath>/Header/@y = 'Y'</xpath>
                            <to ref="OutgoingDestination"/>
                        </when>
                        <otherwise>
                            <to ref="OutgoingErrorDestination"/>
                        </otherwise>
                    </choice>
                </when>
                <otherwise>
                    <to ref="OutgoingErrorDestination"/>
                </otherwise>
            </choice>
        </route>

1 Ответ

0 голосов
/ 21 июня 2019

файл: имя относится к начальному каталогу (то есть файл: имя = тест \ hello.txt)

Если вы хотите проверить только имя файла, вы должны использовать file: onlyname.noext

<simple>${file:onlyname.noext} starts with 'START'</simple>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...