来自http://camel.apache.org/content-enricher.html
...您可以使用收件人列表并拥有动态端点并在收件人列表上定义一个 AggregationStrategy 而不是使用丰富,然后它将像丰富一样工作。...
尝试类似:
from(URI_WEBSERVICE)
.convertBodyTo(Entrada.class)
.process(new ProcessorTratarWS())
.recipientList(simple("ftp://10.100.8.2/entradaCamel?username=USER&password=PASSWORD&delete=true&fileName=${property.archivoRespuesta}")).aggregationStrategy(new EstrategiaConfirmacion())
.to(WS_RESPONDER)
编辑:
上面的代码是将文件保存在 FTP 服务器中。如果您想从 FTP 服务器轮询文件,您可以尝试
from(URI_WEBSERVICE)
.convertBodyTo(Entrada.class)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
// logic of ProcessorTratarWS goes here
ConsumerTemplate consumer=exchange.getContext().createConsumerTemplate();
String filename=exchange.getProperty("archivoRespuesta",String.class);
Object file=consumer.receiveBody("ftp://10.100.8.2/entradaCamel?username=USER&password=PASSWORD&delete=true&fileName="+filename,timeOut);
// logic of EstrategiaConfirmacion goes here
}
})
.to(WS_RESPONDER);
免责声明:我没有太多使用轮询消费者,可能会有更优雅/高效的解决方案