将as3对象反序列化为java时。 GraniteDS抛出此异常:
java.lang.ClassNotFoundException: org.hibernate.collection.PersistentSet
我认为某些依赖项应该在pom.xml中。任何想法?
答案 0 :(得分:0)
在序列化/反序列化时,GraniteDS对基本类型和集合之外的hibernate /任何pojos一无所知。因此,在您的情况下,即使库已到位org.hibernate.collection.PersistentSet
Granite也不会寻找它。
<强>解决方案:强>
使用int graniteDS创建一个hibernate对象的副本,所以你 将有一个版本用于发送AMF对象和另一个 处理hibernate。此外,拥有两个是一个好习惯 副本。
答案 1 :(得分:0)
经过调试,似乎花岗岩DS(版本:3.1.0.GA)建议将此类作为外部化器
org.granite.hibernate.HibernateExternalizer
依赖于hibernate依赖:
import org.hibernate.collection.PersistentCollection;
import org.hibernate.collection.PersistentList;
import org.hibernate.collection.PersistentMap;
import org.hibernate.collection.PersistentSet;
import org.hibernate.collection.PersistentSortedMap;
import org.hibernate.collection.PersistentSortedSet;
这些依赖项在hibernate版本(3.X)中是可以的。但是在hibernate 4中包命名空间不再是valide:
import org.hibernate.collection.internal.PersistentBag;
import org.hibernate.collection.internal.PersistentList;
import org.hibernate.collection.internal.PersistentMap;
import org.hibernate.collection.internal.PersistentSet;
import org.hibernate.collection.internal.PersistentSortedMap;
import org.hibernate.collection.internal.PersistentSortedSet;
作为一种解决方法:我们可以使用相同的HibernateExternalizer实现定义我们的owen外部化程序并更改导入。然后我们在granite-config.xml中使用这个自定义外部化程序。
希望花岗岩DS将实施与外部依赖关系分离,这可能会导致如下所示的突破性变化。