我们使用Jersey,Jackson和Spring服务(@service)注释来公开一些基于REST的Web服务。请求和响应数据以JSON格式进行交换。Jersey Jackson和Spring Service
下面是一个服务请求对象的内容:
public class ServiceRequest{
private RequestHeader requestHeader;
private List<BaseEntity> requestData;
}
所有特定实体将从BaseEntity类扩展。例如:
public class User extends BaseEntity{
private String userName;
}
对于所有的业务运营,我们通过传递请求数据对象的列表只接受ServiceRequest对象。现在,当我们试图调用REST从这些客户端的操作,这些都与
userName is not found as part of BaseEntity.
这是因为在转换,新泽西州/杰克逊试图与指定对象的属性自动检测输入的字段名称失败。
我想知道有没有办法,我可以用智能的方式处理这个问题。我们没有选择更改服务的签名。非常感谢你对此的帮助。
是你的BaseEntity是一个JavaBean吗?(即你有一个getter/setter的用户名) – 2013-03-14 09:31:29
BaseEntity是一个JavaBean。但用户(拥有用户名)扩展了BaseEntity。 BaseEntity只包含id,由创建日期,更新日期,更新日期(这对所有实体通用)。 – Manjunath 2013-03-14 09:48:09
下面的链接有我的问题的答案。 http://stackoverflow.com/questions/11798394/polymorphism-in-jackson-annotations-jsontypeinfo-usage – Manjunath 2013-03-16 12:55:17