我尝试使用此this example创建文件上传功能。但是这个例子在mule 3.5.0中不起作用,给出400 BAD REQUEST错误。请注意,我在我的构建路径中包含了jersey-multipart-1.6和mimepull-1.6 jar。这是代码
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
String uploadedFileLocation = "D://" + fileDetail.getFileName();
// save it
writeToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded to : " + uploadedFileLocation;
return Response.status(200).entity(output).build();
}
骡子侧没有打印错误或异常。我认为该请求甚至没有达到组件。此代码适用于mule 3.4。
请帮助我。
答案 0 :(得分:2)
在Mule 3.5中,http传输的默认消息工厂已更改为HttpMultipartMuleMessageFactory。在Mule 3.4中,这是HttpMuleMessageFactory。
<强>解决方案:强>
定义一个http连接器并覆盖messageFactory,如下所示:
<http:connector name="http">
<service-overrides messageFactory="org.mule.transport.http.HttpMuleMessageFactory" />
</http:connector>
请参阅http入站端点中的此连接器。