2016-09-09 21 views
1

我一直試圖用Morphia保存POJO,但沒有運氣。從來就得到了下面的代碼,這是簡單的:Morphia在保存基本實體時拋出內部異常

final Morphia morphia = new Morphia(); 

morphia.mapPackage("entities.users"); 

final Datastore datastore = morphia.createDatastore(new MongoClient(), "test_table"); 
datastore.ensureIndexes(); 
datastore.save(user); 

然而,奇怪的事情是,datastore.ensureIndexes()拋出取決於嗎啡怪異,內部異常:

WARNING: Parameterized types are treated as untyped Objects. See field 'assertionLock' on class java.lang.ClassLoader 
org.mongodb.morphia.mapping.MappingException: Cannot use non-static inner class: class java.security.ProtectionDomain$Key. Please make static. 
    at org.mongodb.morphia.mapping.MappedClass.basicValidate(MappedClass.java:495) 
    at org.mongodb.morphia.mapping.MappedClass.<init>(MappedClass.java:123) 
    at org.mongodb.morphia.mapping.Mapper.getMappedClass(Mapper.java:451) 
    at org.mongodb.morphia.DatastoreImpl.processEmbeddedAnnotations(DatastoreImpl.java:1545) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1185) 
    at org.mongodb.morphia.DatastoreImpl.processEmbeddedAnnotations(DatastoreImpl.java:1545) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1185) 
    at org.mongodb.morphia.DatastoreImpl.processEmbeddedAnnotations(DatastoreImpl.java:1545) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1185) 
    at org.mongodb.morphia.DatastoreImpl.processEmbeddedAnnotations(DatastoreImpl.java:1545) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1185) 
    at org.mongodb.morphia.DatastoreImpl.processEmbeddedAnnotations(DatastoreImpl.java:1545) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1185) 
    at org.mongodb.morphia.DatastoreImpl.processEmbeddedAnnotations(DatastoreImpl.java:1545) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1185) 
    at org.mongodb.morphia.DatastoreImpl.processEmbeddedAnnotations(DatastoreImpl.java:1545) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1185) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1167) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:1189) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:274) 
    at org.mongodb.morphia.DatastoreImpl.ensureIndexes(DatastoreImpl.java:266) 
    at repositories.UsersRepository.createUser(UsersRepository.java:65) 
    at repositories.UsersRepository.main(UsersRepository.java:101) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

Process finished with exit code 0 

回答

0

在部分,你試圖序列化一個既不是Morphia也不是司機知道該怎麼做的實例。您需要編寫一個Converter來管理該類型。

相關問題