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();
}

测试代码:

<form method="post" action="http://192.168.1.67:8080/HTTPtest/services/uploadfile/upload" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit"/>
</form>

结果总是报:

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文件夹里。

改后过段问题解决。

HTTP Status 415 - Unsupported Media Type表示服务器无法处理请求中所包含的媒体类型。这种错误通常发生在客户端向服务器发送请求时,请求的Content-Type与服务器所支持的媒体类型不匹配。这可能是因为请求中的Content-Type头部字段设置不正确,或者服务器根本不支持请求中指定的媒体类型。 例如,在使用@RequestBody注解接收请求体数据时,服务器期望接收的是特定的媒体类型(例如application/json),如果请求的Content-Type不是服务器所支持的媒体类型,就会返回415错误。 为了解决这个问题,你可以检查以下几个方面: 1. 确保请求头中的Content-Type字段正确设置为服务器所支持的媒体类型,例如application/json。 2. 确保请求的媒体类型与服务器所支持的媒体类型匹配,如果不匹配,可以尝试将请求的媒体类型修改为服务器所支持的媒体类型。 3. 检查服务器端的代码,确保服务器端能够正确处理请求中的媒体类型。 下面是一些可能导致HTTP Status 415错误的常见问题和解决方法: - 如果你正在使用Spring MVC框架,确保在Controller方法上使用了正确的MediaType注解,与客户端请求的Content-Type保持一致。 - 检查请求中的Content-Type头部字段是否正确设置,并且与服务器端期望的媒体类型一致。 - 如果是通过POSTMAN等工具发送请求,检查请求是否正确设置了Content-Type字段,并且选择了合适的媒体类型。 - 检查服务器端是否正确处理了请求中的媒体类型。可能需要在服务器端的代码中添加相应的媒体类型处理逻辑。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值