Объект File имеет значение null для Camel Exchange getbody
В моем верблюжьем маршруте я пытаюсь получить объект file.
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));
}
})
Здесь из rest я отправляю файл, в процессоре, когда я пытался получить через exchange getBody я получаю как null. Но то же самое, если я попытаюсь получить Inputstream и byte [], означает, что он работает нормально.
byte[] bytes = exchange.getIn().getBody(byte[].class);
LOG.info("bytes : "+bytes);
InputStream is = exchange.getIn().getBody(InputStream.class);
Моя цель-извлечь объект file из exchange getBody, если что-то не так, пожалуйста, дайте мне знать.
2 ответа:
.produces(MediaType.APPLICATION_JSON) .consumes(MediaType.MULTIPART_FORM_DATA) .to("direct:extract"); from("direct:extract") .setBody().simple("${body}") .to("http4://....") .end();
Вам не нужно преобразовывать его в Byte[] или inputstream,вы можете непосредственно передать его как тело, а затем установить его как тело