【发布时间】:2014-08-30 23:39:04
【问题描述】:
嗨,我正在创建一个 jersey 2.0+ REST Web 服务。我使用的是 1.7,现在我正在尝试将其迁移到 2.0。
我有 2 个带有 E 对象的类用于处理响应:
public class JsonMessageSingle<E> {
private int status;
private String message;
private E data; // for single objects
}
还有一个使用:
private List<E> data; // for list of objects
我的回复都是这样的格式:
@GET
@Produces("application/json")
public JsonMessageList<User> getUser() {
List<User> list = new UserDao<User>().findAll();
return new JsonMessageList<User>(list); //constructor create status and message basesd on object passed (if null == "error")
}
使用 jersey 1.7 响应一切正常,但现在我得到了:
HTTP Status 500 - Internal Server Error
并且控制台上没有异常/错误。它无法序列化 List>E
【问题讨论】:
-
唯一的泛型类是否没有序列化为 JSON 或所有其他类?如果您可以获取异常详细信息,那将非常容易诊断问题。
-
它只是 E。如果我更改返回到 JsonMessageList(而不是 JsonMessageList
)它会序列化,但用户列表只是对象的 java id(user@ihdh342bd,那个 java id ,而不是用户)。我使用带有球衣的Tomcat,控制台中没有错误,日志中也没有。感谢您的回复。
标签: java json serialization jersey jackson