Это дополнительный вопрос к Как использовать SpEL для чтения полезной нагрузки и содержимого заголовка в Spring Integration Router
Технологии в моем проекте
Spring Boot 2
Spring Integration (XML style)
Java 8
Tomcat 9.x/Liberty 19.0.0.1
В рамках моего проекта Spring Integration (REST API с входящим http-шлюзом, который принимает XML-вход и производит XML-вывод), это настройка для моего вопроса:
- Существует объект Java на основе шаблона Builder (скажем,
MyPOJO
), который является полезной нагрузкой в потоке.
MyPOJO
имеет переменную свойства / экземпляра String (скажем, String response
) вместе с геттером и сеттером.
- Где-то в потоке
MyPOJO
создается и response
устанавливается.
- Внутри
response
имеется ключевое слово / определенный фрагмент текста , который будет определять дальнейший ход потока.
При этом можно написать Маршрутизатор (используя конфигурацию XML), который может проверить, содержит ли response
внутри Message<MyPOJO>
это ключевое слово / определенный фрагмент текста , чтобы определить, куда идти дальше
Иллюстративно, примерно так:
<int:router input-channel="inputChannel" expression="payload.getResponse().contains("keyword")">
<int:mapping value="true" channel="oneRoute"/>
<int:mapping value="false" channel="anotherRoute"/>
</int:router>
Когда я делаю это и запускаю приложение, появляется ошибка:
nested exception is org.xml.sax.SAXParseException; lineNumber: 44; columnNumber: 98; Element type "int:router" must be followed by either attribute specifications, ">" or "/>"
В частности, в части expression="payload.getResponse().contains("keyword")"
, похоже, проблема решается, и это может быть связано с кавычками вокруг keyword
Любая помощь в этом очень приветствуется.
С уважением,
Бхарат