我试图GET
通过REST从服务器的数据。 我的服务器端资源的方法是这样的:
@GET
@Path("{id}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public PersonRepresentation getPerson(@PathParam("id") @Nonnull final Long id) {
// collect data
// and return representation
return personRepresentation;
}
类的定义如下:
@Path("person")
@Component
public class PersonResource {
}
现在,我试图做一个简单的GET
在该资源:
http://localhost:8080/rest/person/1234567890
Accept: application/xml
这就是我的服务器响应:
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 (Unsupported Media Type).
我为什么当我使用收到此错误GET
-方法。 我想我已经设定的Accept-Header
正确使用@Produces
在我们推荐的方式。 围绕谷歌搜索后,我发现了一些“解决方案”是说:你必须设置内容类型的请求。 但是,是不是只有必要的,如果我有一个请求体? ( POST & PUT
)。 任何想法,为什么我得到的Error-Code 415
?
编辑这是我的tomcat控制台说什么:
SEVERE: A message body reader for Java class java.lang.Long, and Java type class java.lang.Long, and MIME media type application/octet-stream was not found
Feb 25, 2014 3:00:24 PM com.sun.jersey.spi.container.ContainerRequest getEntity
SEVERE: The registered message body readers compatible with the MIME media type are:
application/octet-stream ->
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.RenderedImageProvider
*/* ->