我正試圖創建一個模型,它是一個存取方法的哈希表。該模型看起來像這樣...播放框架:模型中的散列表?
public class MyHash(){
Hashtable<Integer, CustomObject> hash = new Hashtable<Integer,CustomObject>();
//few accessor methods here...
}
該類然後在另一個模型中使用。當其他模式啓動,像這樣的變量...
this.hash = new MyHash();
以下異常時...
Internal Server Error (500) for request POST /login
Execution exception (In /app/controllers/Security.java around line 70)
IllegalArgumentException occured : No serializer found for class models.MyHash and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) (through reference chain: User["hash"])
play.exceptions.JavaExecutionException: No serializer found for class models.MyHash and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) (through reference chain: User["hash"])
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:231)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.IllegalArgumentException: No serializer found for class models.ListOfFilters and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) (through reference chain: User["hash"])
at org.codehaus.jackson.map.ObjectMapper._convert(ObjectMapper.java:1784)
at org.codehaus.jackson.map.ObjectMapper.convertValue(ObjectMapper.java:1750)
at play.modules.mongo.MongoMapper.convertValue(MongoMapper.java:12)
at play.modules.mongo.MongoDB.save(MongoDB.java:239)
at models.User.save(User.java)
at controllers.Security.createNewUser(Security.java:70)
at controllers.Security.authenticate(Security.java:36)
at play.utils.Java.invokeStaticOrParent(Java.java:161)
at play.utils.Java.invokeChildOrStatic(Java.java:183)
at controllers.Secure$Security.invoke(Secure.java:187)
at controllers.Secure$Security.access$0(Secure.java:184)
at controllers.Secure.authenticate(Secure.java:64)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:502)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:478)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:473)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)
... 1 more
Caused by: org.codehaus.jackson.map.JsonMappingException: No serializer found for class models.MyHash and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS)) (through reference chain: User["hash"])
at org.codehaus.jackson.map.ser.StdSerializerProvider$1.serialize(StdSerializerProvider.java:62)
at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:268)
at org.codehaus.jackson.map.ser.BeanSerializer.serializeFields(BeanSerializer.java:160)
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:131)
at org.codehaus.jackson.map.ser.StdSerializerProvider._serializeValue(StdSerializerProvider.java:297)
at org.codehaus.jackson.map.ser.StdSerializerProvider.serializeValue(StdSerializerProvider.java:224)
at org.codehaus.jackson.map.ObjectMapper.writeValue(ObjectMapper.java:1030)
at org.codehaus.jackson.map.ObjectMapper._convert(ObjectMapper.java:1777)
... 17 more
你可能會提供更多的背景嗎?我不太明白你想用MyHash類做什麼,以及它是否是一個Model派生類本身(你說它是一個模型,但它不會擴展'Model')? – craigmj 2012-01-13 12:22:48
對於混淆抱歉,你是正確的,它不擴展模型。我想用它來爲用戶存儲一個散列表,並且它被用作擴展模型的類User中的一個變量。 – Skizit 2012-01-13 12:32:22