jersey - Java 类型类 com.sun.jersey.multipart.FormDataMultiPart,未找到 MIME 媒体类型 multipart/form-data

标签 jersey tomcat7 multipartform-data multipart

我在 Tomcat 日志中看到以下错误...

ERROR c.s.j.spi.container.ContainerRequest - A message body reader for Java class com.sun.jersey.multipart.FormDataMultiPart, and Java type class com.sun.jersey.multipart.FormDataMultiPart, and MIME media type multipart/form-data 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
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General


在客户端我看到以下消息:

POST https://dev.project.org/upload returned a response status of 415 Unsupported Media Type.


我用谷歌搜索了一下,建议需要 jersey-multipart.jar 和 mimepull.jar 作为依赖项。我的 build.gradle 中有以下依赖项:

compile 'com.sun.jersey.contribs:jersey-multipart:1.18'

在 tomcat(Apache Tomcat/7.0.47) 上打包并部署应用程序后,我看到 jersey-multipart-1.18.jarmimepull-1.9.3.jar 位于 app/WEB-INF/lib 文件夹中。


以下是我的服务器端代码:

@POST
  @Consumes("multipart/form-data")
  @Path("/v2/upload")
  public Response uploadV2(FormDataMultiPart multipart) {

      logger.info("**POST /v2/upload");

      return Response.ok("success!").build();

  }

我在服务器和客户端仍然遇到相同的错误。任何帮助表示赞赏。 谢谢。

最佳答案

您只需将 mimepull.jar 添加到您的库

或者使用 Maven

<dependency> <groupId>org.jvnet.mimepull</groupId> <artifactId>mimepull</artifactId> <version>1.9.5</version> </dependency>

关于jersey - Java 类型类 com.sun.jersey.multipart.FormDataMultiPart,未找到 MIME 媒体类型 multipart/form-data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21036424/

相关文章:

jersey - Jersey 2 中的 ResourceConfig 类到底是什么?

java - Tomcat 错误 : WARNING: Failed to retrieve JNDI naming context for container

java - Put 请求上的 HTTP 403 Forbidden Jersey

c - 是否可以使用 libcurl 同时下载和发布 multipart/form-data 同一文件?

swift - 如何使用 "form-data"参数发出 alamofire post 请求

tomcat hbase jar 包含

java - Jersey 客户端读取超时,但 Apache HTTP 客户端连接正常

java - 配置 Jersey 以通过 JSON 提供 WADL

eclipse - 为什么 Eclipse - Tomcat 7 在控制台中以红色显示所有文本

java - apache.commons.fileuploads 一次解析后未解析请求