Проблема: файл не используется с сервера
Я использую
from("test")
.routeId("test")
.pollEnrich()
.simple("smb://myUrl?password=test&fileName=${in.headers.test}")
.aggregationStrategy((Exchange oldExchange, Exchange newExchange) -> {
//do things
return newExchange;
})
У меня нет ошибки, я уверен, что URL-адрес в порядке, потому что, когда я использую тот же URL-адрес в from (), файл потребляется. Я не понимаю, что здесь происходит, я использую camel 2.24.0 и camel-extra:camel-jcifs:2.23.1. Я пытался использовать smb2 с библиотекой из github.jborza.camel-smbj, результат тот же.
Пробовал отлаживать, вижу в классе GenericFileComponent в методе createEndpoint, что конечная точка создана корректно, потом попробовал (в режиме отладки) получить обмены со своей конечной точки, могу их успешно получить, дальше так будет a SmbEndpoint, когда я пытаюсь получить обмены от моего smbEndpoint, он возвращает именно нужный файл с сервера, далее для этой конечной точки создается EventDrivenPollingConsumer, я его посмотрел, запускается (вроде нормально). Когда он попадает в Consumer.receive() из PollEnricher, который он блокирует, файл не используется. Я пытался использовать тайм-аут, после чего возвращает ноль, поэтому почему-то не могу найти файл, или потребитель ошибается, я, честно говоря, понятия не имею на данный момент.
Я тоже посмотрел здесь: https://github.com/apache/camel/blob/b9a3117f19dd19abd2ea8b789c42c3e86fe4c488/core/camel-core/src/test/java/org/apache/camel/component/file/FileConsumePollEnrichFileTest.java и я играл с задержками &consumer.initialDelay=100&consumer.delay=100&consumer.bridgeErrorHandler=true
Затем я попытался реализовать с помощью процессора, как здесь:
Тот же результат :(
В какой-то момент файл был израсходован, внезапно, но это было только один раз, я не могу понять такое поведение.