让我们假设一个简单的User类(示例中有一个公共字段),如下所示:
public class User {
public UserId userId;
}
public class UserId {
public String value = "1"; //hardcoded for the example
}当Spring必须要求序列化才能进行涉及User对象的远程调用时,UserId字段很好地序列化为"1"。
但是,当我用一些UserId Spring注释(在我的例子中是Spring-DataNeo4j中的@Indexed )注释这个字段时,我得到了以下堆栈:
RuntimeException: : org.codehaus.jackson.map.JsonMappingException: No serializer found for class com.model.user.UserId and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.HashMap["value"]) (JsonHelper.java:77)
[error] org.neo4j.rest.graphdb.util.JsonHelper.createJsonFrom(JsonHelper.java:77)
[error] org.neo4j.rest.graphdb.ExecutingRestRequest.post(ExecutingRestRequest.java:140)
[error] org.neo4j.rest.graphdb.ExecutingRestAPI.addToIndex(ExecutingRestAPI.java:410)
[error] org.neo4j.rest.graphdb.RestAPIFacade.addToIndex(RestAPIFacade.java:166)
[error] org.neo4j.rest.graphdb.index.RestIndex.add(RestIndex.java:60)注释似乎会导致这种情况的中断。这有什么好的理由吗?是否有一种方法来序列化它,尽管有一个注释?
发布于 2013-12-23 20:31:15
为您的自定义类andr添加序列化器/转换器,在上下文中注册它。
杰克逊不知道如何把你的班级转换成Json,除非你告诉它。
https://stackoverflow.com/questions/20748792
复制相似问题