java - Jersey 异常 : SEVERE: A message body reader f

我有一个基于 Jersey 的 Rest WS,它输出 JSON。我正在实现一个 Jersey 客户端来调用 WS 并使用 JSON 响应。我的客户端代码如下

WebResource r = restClient.resource(UriBuilder.fromUri("http://localhost/").port(8080).build());
String resp = r.path("/user").accept(MediaType.APPLICATION_JSON).get(String.class);
User[] users = r.path("/user").accept(MediaType.APPLICATION_JSON).get(User[].class);

第二行正确输出 JSON 字符串响应,但是将 JSON 编码到 POJO 的第三行没有发生,我得到以下异常堆栈跟踪

SEVERE: A message body reader for Java class [Lorg.shoppingsite.model.entity.jpa.User;, and Java type class [Lorg.shoppingsite.model.entity.jpa.User;, and MIME media type application/json was not found
Dec 21, 2011 11:32:01 AM com.sun.jersey.api.client.ClientResponse getEntity
SEVERE: 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

我的请求中有正确​​的 MIME 类型。我的 POJO 已经用 XMLRootElement 进行了注释。我错过了什么。

谢谢

最佳答案

要让它工作,你只需要两件事。检查您是否丢失:

  1. 首先,您需要为您的对象类/实体添加 @XmlRootElement 注释。
  2. 如果您丢失了,您需要为 jersey-json 添加依赖项。供您引用,我将此依赖项添加到我的 pom.xml 中。

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-json</artifactId>
        <version>1.17.1</version>
    </dependency>
    

关于java - Jersey 异常 : SEVERE: A message body reader for Java class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8594707/

相关文章:

json - 如何强制将请求正文解析为纯文本而不是 Express 中的 json?

json - 在单行上从 jq 获取输出

json - angularjs - ng-重复 : access key and value fr

c# - 将对象序列化为 JSON 时循环引用检测到异常

json - 如何在 Mac 上通过命令行安装 JQ?

java - 使用 GSON 解析 JSON 文件

java - 用于生成和使用 JSON 的 Controller 的 Spring RequestM

java - Jackson JSON 字段映射大小写?

javascript - Javascript对象和JSON对象有什么区别

ios - waitUntilAllTask​​sAreFinished 错误 Swift