Java Camel:访问和访问Exchange
我有这条路线Java Camel:访问和访问Exchange,java,apache-camel,integration-patterns,Java,Apache Camel,Integration Patterns,我有这条路线 from(URI_WEBSERVICE) .convertBodyTo(Entrada.class) .process(new ProcessorTratarWS()) .pollEnrich("ftp://10.100.8.2/entradaCamel?username=USER&password=PASSWORD&delete=true&fileName=${property.archivoRespuesta}", timeOut, new Estra
from(URI_WEBSERVICE)
.convertBodyTo(Entrada.class)
.process(new ProcessorTratarWS())
.pollEnrich("ftp://10.100.8.2/entradaCamel?username=USER&password=PASSWORD&delete=true&fileName=${property.archivoRespuesta}", timeOut, new EstrategiaConfirmacion())
.to(WS_RESPONDER)
在ProcessorTratarWS()中我设置了property.archivoRespuesta的值,它是pollRich应该加载的文件名
但是,文件上说“PollRich没有访问Exchange的权限”。这意味着PollRich无法读取${property.archivoRespuesta}的值
有没有其他方法可以做我正在尝试的事情
谢谢 来自
。。。
您可以使用收件人列表并使用动态
端点,并在收件人列表上定义聚合策略
这样做就像一个富人一样
尝试以下方法:
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);
免责声明:我没有使用太多,可能会有更优雅/高效的解决方案Argh!太令人困惑了!如何告诉recipentList我要检索文件而不是编写文件?最后我理解了您的问题:)。请查看我的最新答案谢谢!它起作用了!这就是如何使用ConsumerTemplate。如果你去智利,打电话给我。。。我欠你一杯啤酒。。。