问题:服务器未消耗文件
我正在使用
from("test")
.routeId("test")
.pollEnrich()
.simple("smb://myUrl?password=test&fileName=${in.headers.test}")
.aggregationStrategy((Exchange oldExchange, Exchange newExchange) -> {
//do things
return newExchange;
})
我没有错误,我确信该URL正常,因为当我在from()中使用相同的URL时,文件将被消耗。 我不明白这里发生了什么,我正在使用骆驼2.24.0和骆驼额外:camel-jcifs:2.23.1。我尝试使用github.jborza.camel-smbj中的库使用smb2,结果仍然相同。
我尝试调试,可以在createEndpoint方法的GenericFileComponent类中看到正确创建了端点,然后尝试(在调试模式下)从端点获取交换,可以进一步成功获取它们这将是一个SmbEndpoint,当我尝试从smbEndpoint获取交换信息时,它会从服务器中完全返回所需的文件,并为该终结点创建了一个EventDrivenPollingConsumer,我开始看了一下(似乎还可以)。当它从PollEnricher中击中consumer.receive()时,不会消耗任何文件。我尝试使用超时,而不是返回null,所以以某种方式找不到该文件,或者使用方是错误的,老实说,我现在没有任何线索。
我也在这里看看: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
然后我尝试使用像这样的处理器来实现:
相同的结果:(
在某个时候,文件突然被消耗了,但这仅发生了一次,我无法理解这种行为。
答案 0 :(得分:0)
听起来您有readlock问题,可以找到.done中与您要使用的文件同名的文件吗?