在我的 Camel 路由器中:
from(<SourceURI>)
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
// I want to extract the file object from the exchange
}
.to(<targetURI>).
我怎样才能做到这一点?
我试过例如
exchange.getIn().getHeader(Exchange.FILE_NAME, String.class)
这给了我文件名。我在找东西
Exchange.FILE
这给了我实际的文件对象。我的最终目标是在处理器中提取文件,因为路由交换是一个存档文件。
最佳答案
从正文中获取文件。 Camel 使用“org.apache.camel.component.file.GenericFile”作为文件体存储。但是您可以使用 Camel 的类型转换器以您想要的类型获取文件。
例如,您可以获取不同类型的内容,例如:
String text = exchange.getIn().getBody(String.class);
byte[] bytes = exchange.getIn().getBody(byte[].class);
InputStream is = exchange.getIn().getBody(InputStream.class);
关于apache-camel - 如何从 Camel FTP 路由交换中获取实际文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31779575/