我正在尝试使用 Mule 中的 Jersey 模块实现文件上传。
我的骡流看起来像这样:
<flow name="rest-service">
<inbound-endpoint address="http://localhost:9999/testupload"/>
<jersey:resources>
<component class="com.example.test.UploadFileResource"/>
</jersey:resources>
</flow>
如果我没有将 @Consumes 注释放在 UploadFileResource 中的资源方法中,如下所示,当使用 multipart/form-data Content-type 发出 HTTP Post 请求并获得 HTTP 2xx 状态代码时,将调用该方法:
@Path("/uploadfile")
public class UploadFileResource {
@POST
public Response uploadFile2(...) {
logger.info("Multipart Upload");
...
}
}
但是,当我将@Consumes 注释与 MULTIPART_FORM_DATA 媒体类型如下所示时,该方法不会被调用并且我得到 HTTP 415 Unsupported Media type,即使 HTTP Post 请求是使用 multipart/form-data 内容类型发出的:
@Path("/uploadfile")
public class UploadFileResource {
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile2(...) {
logger.info("Multipart Upload");
...
}
}
知道为什么即使@Consumes 媒体类型与 HTTP Post Content-type 标头匹配,为什么还会出现 415 状态吗?