Apache Camel Простой предикат в XML маршрут не работает - нужно преобразовать заголовок в строку? - PullRequest
0 голосов
/ 17 января 2020

Любая помощь здесь будет принята с благодарностью:)

У меня есть этот код в моем файле Camel route XML file:

<choice>
    <when>
        <simple>${header.CamelHttpQuery} not contains '%'</simple>
        <process ref="firstResponseTransformer"/>
    </when>
    <otherwise>
        <process ref="secondResponseTransformer"/>
    </otherwise>
</choice>

(я также пытался !contains)

Как видите, я хочу go для разных классов, чтобы подготовить мой ответ в зависимости от условия.

Я могу видеть, используя точку останова в ударе процессора, который был ранее в маршруте, что значение exchange> in> headers> CamelHttpQuery равно "", но независимо от того, должно ли условие быть истинным, всегда должен быть выбран преобразователь в теге else.

Простое утверждение выглядит правильно мне на основе документов Camel, и у меня есть другие простые утверждения в базе кода, которые, кажется, работают нормально.

У кого-нибудь есть идеи, почему простое не работает, когда оно должно быть правдой?

Довольно застрял. Заранее спасибо.

Версия верблюда 2.12.4

Редактировать: Я думаю, это потому, что мне нужно конвертировать header.CamelHttpQuery из символов в строки, кто-нибудь знает, как сделать это в Simple?

1 Ответ

0 голосов
/ 20 января 2020

Проблема заключалась в том, что мой header.CamelHttpQuery был Character, а не String.

Как предложено Бедлой в вышеприведенном комментарии, я исправил: <simple>${headerAs(CamelHttpQuery,String)} not contains '%'</simple>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...