【发布时间】:2018-04-24 19:59:14
【问题描述】:
我在 Glassfish 的 RESTful 应用程序中使用 Jersey 将 POJO 序列化为 JSON 时遇到了一些困难。
当我将复杂的 POJO 作为端点“响应”传递时,我在 Glassfish 控制台中收到此错误:
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: 未找到媒体类型=application/json、类型=
的 MessageBodyWriter
“复杂”是指根类包含许多类,并且许多类扩展了基类。
在将 POJO 传递给 Jersey 时,我已经弄清楚了以下规则:
1) 所有类都必须有一个空的构造函数 2) 任何内部类都必须是静态的 3) 任何内部类都必须在整个树中从基类中唯一命名
如果泽西岛能告诉我更多信息,那就太好了。它在拒绝的 POJO 中发现了什么?有没有办法让 Jersey 将特定问题或问题记录到 Glassfish 控制台,它在 POJO 中找到并传递回 Response?任何其他建议将不胜感激。
【问题讨论】:
-
您是否尝试过使用带有
getter和setter方法的简单POJO? -
POJO 是否用
@XmlRootElement注解? -
Arpit:用来序列化的POJO没有任何问题。当我增加复杂性时,它失败了。有时我会后退并慢慢添加代码,直到它失败然后我看到一个问题并且它运行正常。我需要的是 Jersey 告诉我关于它拒绝什么的更具体的细节。
-
Peeskillet:不需要注释。 POJO 可以很好地序列化,直到我对复杂性进行一些更改。我需要的是泽西岛关于为什么它被拒绝的更多细节。当 POJO 被拒绝时,关于如何让 Jersey 提供更多细节的任何想法?
标签: java json jersey glassfish