У меня есть маршрут Camel, которому нужно получить файл XML с FTP в виде потока, проверить его и разделить.
Все работает нормально вплоть до проверки, но затем разделение не работает должным образом. При отладке я обнаружил, что разделенный процесс не находит никакого процессора, когда исходное сообщение является потоком. Мне это очень похоже на баг.
from("direct:start")
.pollEnrich("ftp://user@host:21?fileName=file.xml&streamDownload=true&password=xxxx&fastExistsCheck=true&soTimeout=300000&disconnect=true")
.to("validator:myXsd.xsd")
.split().tokenizeXML("myTag")
.to(to)
.end();
В этом случае я вижу, как Exchange попадает в сплиттер, но процессор не найден, и сплит ничего не делает. поведение отличается, если я удалю проверку:
from("direct:start")
.pollEnrich("ftp://user@host:21?fileName=file.xml&streamDownload=true&password=xxxx&fastExistsCheck=true&soTimeout=300000&disconnect=true")
.split().tokenizeXML("myTag")
.to(to)
.end();
В этом случае сплиттер работает нормально.
Кроме того, если файл XML не приходит из потока, то все в порядке.
from("file:file.xml")
.to("validator:myXsd.xsd")
.split().tokenizeXML("myTag")
.to(to)
.end();
Я обновляю свою версию Camel до 2.15.2, но все равно получаю ту же ошибку.