我有一个用例,我需要通过交换体发送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 = []}
我错过了一些转换类型吗?或者是其他东西。任何帮助将不胜感激