我在 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.jar 和 mimepull-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/