文件上传Jersey Multipart在MULE 3.5.0中不起作用

时间:2014-09-08 10:44:08

标签: jersey mule esb

我尝试使用此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。

请帮助我。

1 个答案:

答案 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入站端点中的此连接器。