Apache flex ActionScript:BlazeDS/AMF和类接口的类型强制问题

Apache flex ActionScript:BlazeDS/AMF和类接口的类型强制问题,apache-flex,actionscript,blazeds,amf,Apache Flex,Actionscript,Blazeds,Amf,我在Java/Hibernate/BlazeDS/Flex设置中遇到了类型强制问题 首先,我的课程是这样的: ---爪哇--- 接口I (摘要)A类实现I B类扩展了A类 ---动作脚本--- 接口I A类实施I B类扩展了A类 我在所有ActionScript类/接口I、A和B中都得到了RemoteClass元标记。包结构和类/接口名称完全相同 现在问题来了: 我的Java服务通过Hibernate成功地从我的数据库检索B类对象。我得到了另一个C类,它具有接口类型I的成员属性,因此应该可以

我在Java/Hibernate/BlazeDS/Flex设置中遇到了类型强制问题

首先,我的课程是这样的:


---爪哇---

接口I
(摘要)A类实现I
B类扩展了A类

---动作脚本---

接口I
A类实施I
B类扩展了A类


我在所有ActionScript类/接口I、A和B中都得到了RemoteClass元标记。包结构和类/接口名称完全相同

现在问题来了: 我的Java服务通过Hibernate成功地从我的数据库检索B类对象。我得到了另一个C类,它具有接口类型I的成员属性,因此应该可以分配类型B的对象。但由于某些原因,我得到以下错误消息:

TypeError:错误#1034:无法转换Object@28b44a89到package.name.I

我检查了服务中的Java对象类型,它的类型是B,看起来完全没有问题。为什么不能将类型B的对象分配给类型I的成员变量?这让我快发疯了


提前感谢。

检查服务调用返回的对象的类型(使用Flash Builder中的调试器检查结果)。可能它们没有正确转换为类型B,并且创建了ObjectProxy。如果不是这样,请发布您的代码。

我也遇到了同样的奇怪问题

我的情况是这样的: 我用Flex4+Spring开发了一个web应用程序

在Java中,我有类消息。 在Flex中,我有类消息

从服务器获取远程java对象并在Flex中转换为消息类型时,将发生此错误。奇怪的是,第一次,在Flex中从远程java对象转换为消息类型是可以的,并且没有错误;但在第二次,它失败并显示错误

为了解决这个问题,我有一个解决方案:使用registerClassAlias()方法注册远程java类

但我想知道是否有其他解决这个问题的办法。这是Flex的一个bug吗