在apache Camel中无法在交换时将body设置为FormDataMultiPart

时间:2017-11-25 12:11:45

标签: apache-camel

我有一个用例,我需要通过交换体发送FormDataMultiPart,这是一个REST服务调用。

REST终点:

public Response sendttachments(final FormDataMultiPart bodyPart) {
//Do Something
}

Camel Processor:

FormDataMultiPart formDataMultiPart = new FormDataMultiPart();
File file = new File("pathToFile");
InputStream targetStream = new FileInputStream(file);
FormDataBodyPart fdp1 = new FormDataBodyPart(FormDataContentDisposition.name("emailRequest").build(),
                    someObject, MediaType.APPLICATION_JSON_TYPE);
FormDataBodyPart fdp2 = new FormDataBodyPart(
FormDataContentDisposition.name("file").fileName("fileName").build(), targetStream,MediaType.APPLICATION_OCTET_STREAM_TYPE);

formDataMultiPart.bodyPart(fdp1).bodyPart(fdp2);

    exchange.getIn().setBody(Entity.entity(formDataMultiPart, MediaType.MULTIPART_FORM_DATA));

我得到以下异常:

  

引起:org.apache.camel.NoTypeConversionAvailableException:没有   type转换器可以转换类型:   javax.ws.rs.client.Entity为所需类型:java.io.InputStream   有价值的   Entity{entity=org.glassfish.jersey.media.multipart.FormDataMultiPart@3e90d6b2,   variant = Variant [mediaType = multipart / form-data,language = null,   encoding = null],annotations = []}

我错过了一些转换类型吗?或者是其他东西。任何帮助将不胜感激

0 个答案:

没有答案