找不到多部分/表单数据的邮件正文阅读器 - 不支持的媒体类型(415)错误

时间:2017-03-23 13:03:38

标签: jersey

请为此解决。

以下是我的webservice方法的签名,该方法接受附件的内容类型= multipart / form-data

@POST @Path(“/ saveimg”)
    @Consumes(MediaType.MULTIPART_FORM_DATA)     public Response saveAttachment(@FormDataParam(“files”)InputStream fileInputStream,              @FormDataParam(“files”)FormDataContentDisposition contentDispositionHeader){

我收到以下错误

SEVERE: A message body reader for Java class com.sun.jersey.core.header.FormDataContentDisposition, and Java type class com.sun.jersey.core.header.FormDataContentDisposition, and MIME media type multipart/form-data; boundary=----WebKitFormBoundaryiNkfu0uRssIuZMPX was not found.
The registered message body readers compatible with the MIME media type are:
*/* ->
  com.sun.jersey.core.impl.provider.entity.FormProvider
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
  com.sun.jersey.core.impl.provider.entity.FileProvider
  com.sun.jersey.core.impl.provider.entity.InputStreamProvider
  com.sun.jersey.core.impl.provider.entity.DataSourceProvider
  com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
  com.sun.jersey.core.impl.provider.entity.ReaderProvider

2 个答案:

答案 0 :(得分:1)

尝试删除FormDataContentDisposition,我删除了它,现在我没有415错误...但我必须找到另一种方法来获取所需的信息。

我的文件:@FormDataParam(" file")InputStream fileStream。

我试着读取这样的文件:

final Reader reader = new InputStreamReader(fileStream);     String text = CharStreams.toString(reader);

但不是我的最终解决方案......我正在寻找其他解决方案...... 希望我能帮上忙。

答案 1 :(得分:0)

但是很晚才回答,我使用Jersey 2 Framework解决了我的问题。泽西岛版本1对我不起作用。除此之外,所需的库是:

    jersey-media-multipart-2.25

    mimepull-1.9.7

注意:我使用过jackson提供者 - jersey-media-json-jackson-2.5.1

很容易,可以从Chrome POSTMAN进行测试

   >> method - PUT, POST
   >> Give Path(URL) of your resource method
   >> Body -- form-data  
   >> key -- should match with @@FormDataParam argument
   >> Choose File -> browse but make sure it's **File** type not Text
   >> Yeah, Hit SEND