找不到Java类的消息正文读取器(非Maven)
这是这个问题的一个细微变化。我没有使用Maven,但是在类路径中包含了jersey-bundle-1.17.1。它似乎包含了jersey json中的所有类。然而,我也向classpath和WEB-INF/lib添加了jersey json,并得到了相同的错误。我正在发布json找不到Java类的消息正文读取器(非Maven),java,json,jersey,Java,Json,Jersey,这是这个问题的一个细微变化。我没有使用Maven,但是在类路径中包含了jersey-bundle-1.17.1。它似乎包含了jersey json中的所有类。然而,我也向classpath和WEB-INF/lib添加了jersey json,并得到了相同的错误。我正在发布json { to: 'John', company: 'Costo' } 有什么明显的吗 收件人是带有两个字符串字段的简单POJO-收件人和公司 @POST @Path("/saveit") @Consumes(MediaT
{ to: 'John', company: 'Costo' }
有什么明显的吗
收件人是带有两个字符串字段的简单POJO-收件人和公司
@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
...
这应该在编译时失败,因为您的方法实现没有返回对象(即,它是
void
return),但方法签名指示返回响应
对象。您的实现只需将Recipient
对象打印到标准输出(很可能最终会出现在容器的日志文件中)
我看到您没有使用Maven来管理依赖项(这很好),但是您添加了所需的依赖项了吗?例如,这看起来与您的类似…您是否正确地为POJO添加了注释?谢谢。只是添加了缺少的省略号。避免与不相关的部分混淆。异常发生在编组过程中,因此我们永远无法访问sysout。@Fakeer-如果您包含相关代码,帮助您会容易得多。请把这个例子简化为最简单的概念证明,以说明你遇到的错误;否则,我们只能猜测触发错误的代码可能是什么样子。而且一定要包括整个错误。。。