Это дополнительный вопрос к Как использовать 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
Любая помощь по этому поводу приветствуется.
С уважением, Бхарат