繁体   English   中英

找不到Java类的消息正文阅读器(非Maven)

[英]Message body reader for Java class not found (non-Maven)

这与这里的问题略有不同。 我没有使用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
      ...

这应该在编译时失败,因为您的方法实现没有返回对象(即,它是一个void返回),但是方法签名指示已返回一个Response对象。 您的实现只是将Recipient对象打印到标准输出(可能会出现在容器的日志文件中)。

我看到您没有使用Maven管理依赖项(很好),但是您是否添加了Jersey必需的依赖项? 例如,此错误报告看起来与您的错误报告相似。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM