错误反序列化granits amf对象

时间:2014-09-22 17:02:20

标签: hibernate flex amf graniteds

将as3对象反序列化为java时。 GraniteDS抛出此异常:

java.lang.ClassNotFoundException: org.hibernate.collection.PersistentSet

我认为某些依赖项应该在pom.xml中。任何想法?

2 个答案:

答案 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将实施与外部依赖关系分离,这可能会导致如下所示的突破性变化。