HTTP Status 415 - Unsupported Media Type

server 代码:

@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
System.out.println("uploadFile start");


String uploadedFileLocation = "E://uploaded/"
+ fileDetail.getFileName();


writeToFile(uploadedInputStream, uploadedFileLocation);


String output = "File uploaded to : " + uploadedFileLocation;
System.out.println("uploadFile end");
return Response.status(200).entity(output).build();
}

测试代码:





结果总是报:

2013-8-22 10:19:38 com.sun.jersey.spi.container.ContainerRequest getEntity

严重: 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=----WebKitFormBoundaryuLityYGZVIgcPrJC was not found
2013-8-22 10:19:38 com.sun.jersey.spi.container.ContainerRequest getEntity
严重: 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.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


HTTP Status 415 - Unsupported Media Type


type Status report

message Unsupported Media Type

description The server refused this request because the request entity is in a format not supported by the requested resource for the requested method.


Apache Tomcat/7.0.39

google 了很多原因如下:

要包含jersey-multipart.jar 和 mimepull.jar  并且要和 jersey-server.jar 版本一致。

调了很据还是会出现以上问题。最后在tomcat的webapps\HTTPtest\WEB-INF\lib里边没有发现Reference Library 里的jar包!

原来我把jar包放在了项目根目录的lib文件夹里了而没有放在WEB-INF文件夹里的lib文件夹里。

改后过段问题解决。

你可能感兴趣的:(Java)