尝试使用 Jersey 将 JSON 转换为 POJO 时出错

2024-03-18

我正在这样做:

WebResource resource = client.resource(urlStr); 
resource.accept(MediaType.APPLICATION_JSON_TYPE, MediaType.APPLICATION_XML_TYPE);
GenericType<List<EMailInformations>> genericType = new GenericType<List<EMailInformations>>() {};
List<EMailInformations> response = null; 
try{ 
    response = resource.get(genericType); 
} catch (UniformInterfaceException ue) { 
    ClientResponse clientResponse = ue.getResponse(); 
}

类 EMailInformation

@XmlRootElement
public class EMailInformations {
    private long id;

    public EMailInformations(){

    }

    public EMailInformations(long id) {
        super();
        this.id = id;
    }
        //getters & setters ...
}

一些 JSON 响应

{"cn":[{"id":"302","l":"7","d":1308239209000,"rev":14667,"fileAsStr":"TAICHIMARO, Marouane","_attrs":{"lastName":"TAICHIMARO","imAddress1":"other:......

我收到这个错误:

21 juin 2011 16:56:01 com.sun.jersey.api.client.ClientResponse getEntity
GRAVE: A message body reader for Java class java.util.List, and Java type java.util.List<fr.liberacces.pool.liferay.connecteur.modele.EMailInformations>, and MIME media type text/plain was not found
21 juin 2011 16:56:01 com.sun.jersey.api.client.ClientResponse getEntity
GRAVE: The registered message body readers compatible with the MIME media type are:
text/plain ->
  com.sun.jersey.core.impl.provider.entity.StringProvider
  com.sun.jersey.core.impl.provider.entity.ReaderProvider
*/* ->
  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.json.impl.provider.entity.JSONJAXBElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
  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
  com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
  com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy

但我收到此错误: GRAVE: A message body reader for Java class java.util.List, and Java type ... was not found

这是萤火虫跟踪:

Réponsevoir le code source
Date    Wed, 22 Jun 2011 10:36:19 GMT
Content-Encoding    gzip
Content-Length  634
Via 1.1 zimbra.server.com
Keep-Alive  timeout=15, max=100
Connection  Keep-Alive
Content-Type    text/plain
Requêtevoir le code source
Host    zimbra.server.com
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Cookie  ZM_AUTH_TOKEN=0_01e07d9cb12b86ef4675604362137c08c1d9fd0d_69643d33363a61343831353331382d336436362d343766632d386662393d3133613638633661323165393b6578703d31333a313330383832313935333436393b747970653d363a7a696d6172613b; JSESSIONID=1eb0ksxao39jj

我遇到了同样的问题。通过使用“yves amsellem”的提示,我可以得到更进一步的帮助。 对我来说,我可以使用 POJO 映射器功能来解决这个问题。 (它们需要在服务器和客户端上启用。此外,需要 jersey-json 库才能使其正常工作)

ClientConfig config = new DefaultClientConfig();
..
config.getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, Boolean.TRUE);
..
Client client = Client.create(config);

我希望这可以帮助您进一步前进,尽管这个问题已经很老了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试使用 Jersey 将 JSON 转换为 POJO 时出错 的相关文章

随机推荐

  • Google Apps 脚本 Web 应用程序在外部网站上进行身份验证

    我需要实现一个用于登录网站的 Google Apps 脚本应用程序 然后如果该网站上的身份验证过程成功 用户应该在 google 脚本侧边栏中收到一条消息 例如 用户输入他的电子邮件和密码 然后按登录按钮 如果凭据正确 他应该登录网站 如果
  • 如何控制 graphviz 中的节点放置(即避免边缘交叉)

    我正在使用 graphviz 点 生成您可以在下面看到的图表 左下角的节点 红色椭圆 会引起烦恼 因为它的边缘与相邻节点的多个边缘交叉 有没有办法将节点放置限制在某个区域 您可以创建一个不可见的约束 以使红色节点出现在所有其他节点的左侧 r
  • 使用r32平台工具的ADB配对未知命令

    我刚刚下载了全新安装的 SDK 平台工具 因为我不需要 IDE 版本 r32 0 0 当使用 adb 对时 我得到以下信息 PS C userpath platform tools r32 0 0 windows platform tool
  • C 中的图像输出

    简单的问题 有没有办法使用 C 显示文件中的图像 例如 bmp 它显然不在graphics h中 而且我不能使用Allegro 因为它不支持Borland 或者我读过 我需要在学校项目中使用非常旧的编译器 我想问是否有人有使用其他库执行此操
  • 没有游标的存储过程

    如何在没有光标的情况下编写以下 sp 更重要的是它没有给我想要的输出 我没有写这个 我只是想解释一下这有什么问题 ALTER PROCEDURE dbo AccreditationExpiryCheck AS BEGIN SET NOCOU
  • Proguard retrace 没有将堆栈跟踪映射到实际源

    我一直在使用 eclipse 内置的 proguard 工具来混淆代码 效果很好 但是 当我尝试重新跟踪混淆代码的堆栈跟踪时 重新跟踪不会输出未混淆的堆栈跟踪 我仔细检查了mapping txt 以确保我使用的是正确的 这是我的堆栈跟踪 E
  • 如何进行 MANCOVA

    我正在尝试在 R 中执行 mancova 但是 我尝试过jmv https cran r project org web packages jmv jmv pdf包裹 x lt cbind total c total p dependent
  • n 层架构的单元测试

    我使用 3 层架构 控制器 业务和数据层 在我的数据层中 我通过传递连接字符串和其他必要的参数来调用 Sql Server 数据库 我必须为控制器层和业务层编写单元测试 我想编写一个存根 假存储库 从中返回硬编码值 结果 当我为业务层编写测
  • Git 交互式 rebase 无需打开编辑器

    Git 允许某些命令在不先打开编辑器的情况下创建或修改提交 例如 git commit amend no edit git commit fixup HEAD 我已经设定rebase autosquash to true 以便交互式变基的待
  • Android java.net.UnknownHostException:主机未解析(策略问题)

    我有 Android 代码 它使用后台进程定期 例如每小时 连接到网络上的内容源以检查更新的内容 当新用户下载该应用程序并首次运行它时 似乎 这只是 目前看来 在首次运行的情况下 因为我们服务器的 DNS 尚未缓存在设备上 第一个系列的连接
  • 使用钥匙串在 iOS 扩展及其包含的应用程序之间共享?

    我了解我可以通过启用应用程序组并使用 NSUserDefaults 在我的共享扩展及其包含的应用程序之间共享数据 请参阅在 iOS 8 共享扩展和主应用程序之间共享数据 https stackoverflow com questions 2
  • XMLHttpRequest - 使用后释放?

    我正在编写一个完全由 AJAX 驱动的浏览器应用程序 我一生中第一次 这意味着 这将是一个留在浏览器中的页面 根据需要加载程序组件 浏览器历史记录将是 好吧 没有 页面根本不会刷新 我关心的是我应该如何处理 XMLHttpRequests
  • 无法使用测试帐户在 paypal 沙箱中付款

    自从 paypal 更新了他们的沙箱后 我遇到了很多问题 我无法使用沙箱模拟付款 每当我使用更新之前创建的 旧测试帐户 时 都会出现此错误消息 该沙盒电子邮件地址不可用 请输入另一个电子邮件地址 我创建了一个新帐户 但不幸的是它也不起作用
  • 如何在android中压缩视频文件

    我想在上传到服务器之前压缩视频文件 我浏览了此链接如何将视频压缩到最大级别android https stackoverflow com questions 21002163 how to compress a video to maxim
  • Racket 中的 POST/GET 绑定

    Racket 中是否有内置的方法来获取 POST GET 参数 extract binding和朋友做我想做的事 但附加了一个关于与文件上传相关的潜在安全风险的可怕注释 其结论是 因此 我们建议反对他们 使用 但它们是为 与旧代码的兼容性
  • 用户注销:清除默认 Google 帐户不会导致帐户选择器显示在 Android 应用程序中

    我按照下面的链接在我的 Android 应用程序中实现了 退出 按钮 该应用程序使用 Google API 客户端 但是 再次连接 google api 后 用户不会看到帐户选择器 看起来她 他最初选择的价值也许仍然以某种方式被缓存 几个小
  • Highcharts - 具有负值的面积样条线,面积应始终位于底部

    我想用 Highcharts 创建一个带有负值的图表 如下所示 http jsfiddle net vargapeti LjL03o8h 3 http jsfiddle net vargapeti LjL03o8h 3 function c
  • JS 关联数组:添加新对

    我在 JS 中有一个关联数组 var array one first two second three third 我怎样才能在其中添加新的对 array newpair new value or array newpair newvalu
  • 使用 Identity 2.0 数据库进行 Moq 模拟

    我在基于简单成员资格数据库的 MVC 5 Entity Framework 6 应用程序中使用 Moq 模拟针对 BusAct 控制器成功设置了集成测试 但现在我已经将数据库迁移到Identity 2 0 并将UserProfile替换为A
  • 尝试使用 Jersey 将 JSON 转换为 POJO 时出错

    我正在这样做 WebResource resource client resource urlStr resource accept MediaType APPLICATION JSON TYPE MediaType APPLICATION