Camel Exchange getbody 的文件对象为空
File object is null for Camel Exchange getbody
在我的骆驼路线中,我正在尝试获取文件对象。
rest("/file")
.post("/extract")
.to("direct:extract");
from("direct:extract")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
File file = exchange.getIn().getBody(File.class);
LOG.info("file : "+file);
multipartEntityBuilder.addPart("file", new FileBody(file, ContentType.MULTIPART_FORM_DATA,filename));
}
})
从这里开始,我正在发送文件,在处理器中,当我试图通过交换 getBody 时,我得到的是 null。
但是如果我尝试获取 Inputstream 和 byte[] 意味着它工作正常。
byte[] bytes = exchange.getIn().getBody(byte[].class);
LOG.info("bytes : "+bytes);
InputStream is = exchange.getIn().getBody(InputStream.class);
我的目标是从 exchange getBody 获取文件对象,有什么问题请告诉我。
没有 java.io.File
作为消息正文,因为 HTTP 文件上传不表示为 java.io.File
,而是表示为输入流。 java.io.File
用于 Camel 中的常规文件组件。
.produces(MediaType.APPLICATION_JSON)
.consumes(MediaType.MULTIPART_FORM_DATA)
.to("direct:extract");
from("direct:extract")
.setBody().simple("${body}")
.to("http4://....")
.end();
不需要转成Byte[]或inputstream,直接作为body传递,然后设置为body
在我的骆驼路线中,我正在尝试获取文件对象。
rest("/file")
.post("/extract")
.to("direct:extract");
from("direct:extract")
.process(new Processor() {
@Override
public void process(Exchange exchange) throws Exception {
File file = exchange.getIn().getBody(File.class);
LOG.info("file : "+file);
multipartEntityBuilder.addPart("file", new FileBody(file, ContentType.MULTIPART_FORM_DATA,filename));
}
})
从这里开始,我正在发送文件,在处理器中,当我试图通过交换 getBody 时,我得到的是 null。 但是如果我尝试获取 Inputstream 和 byte[] 意味着它工作正常。
byte[] bytes = exchange.getIn().getBody(byte[].class);
LOG.info("bytes : "+bytes);
InputStream is = exchange.getIn().getBody(InputStream.class);
我的目标是从 exchange getBody 获取文件对象,有什么问题请告诉我。
没有 java.io.File
作为消息正文,因为 HTTP 文件上传不表示为 java.io.File
,而是表示为输入流。 java.io.File
用于 Camel 中的常规文件组件。
.produces(MediaType.APPLICATION_JSON)
.consumes(MediaType.MULTIPART_FORM_DATA)
.to("direct:extract");
from("direct:extract")
.setBody().simple("${body}")
.to("http4://....")
.end();
不需要转成Byte[]或inputstream,直接作为body传递,然后设置为body