问题here略有不同。我没有使用Maven,但在类路径中包含了jersey-bundle-1.17.1。它似乎包括了jersey-json中的所有类。但是我还将jersey-json添加到classpath和WEB-INF / lib并得到相同的错误。我正在发布json
{ to: 'John', company: 'Costo' }
有什么明显的吗?
收件人是简单的POJO,有两个字符串字段 - to和company
@POST
@Path("/saveit")
@Consumes(MediaType.APPLICATION_JSON )
@Produces( MediaType.APPLICATION_JSON )
public Response saveit(Recipient rec) {
System.out.println(rec);
....
}
但我仍然得到错误:
Apr 20, 2014 8:17:23 PM com.sun.jersey.spi.container.ContainerRequest getEntity
SEVERE: A message body reader for Java class com.company.guestbook.model.Recipient, and Java type class com.company.guestbook.model.Recipient, and MIME media type application/json was not found.
The registered message body readers compatible with the MIME media type are:
application/json ->
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$App
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$App
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$App
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
...
答案 0 :(得分:0)
这应该在编译时失败,因为您的方法实现没有返回对象(即,它是void
返回)但方法签名表示返回了Response
对象。您的实现只是将Recipient
对象打印到标准输出(可能最终会出现在容器的日志文件中)。
我看到你没有使用Maven来管理你的依赖项(这很好),但你是否添加了Jersey所需的依赖项?例如,这个error report看起来与你的相似......