【问题标题】:RemoteObject in BlazeDS environment: Serializing objects from JAXB/XJC-generated classesBlazeDS 环境中的 RemoteObject:从 JAXB/XJC 生成的类中序列化对象
【发布时间】:2011-05-10 14:20:25
【问题描述】:

我正在使用 BlazeDS 开发一个带有 Java 后端和 Flash(纯 ActionScript)前端的 web 应用程序。

我正在使用RemoteObject 东西来发送对象,使用自定义序列化,我需要实现 Externalizable (Java) 和 IExternalizable (AS) 接口。到目前为止,这工作正常。

但现在我需要将对象从 Java 发送到 Flash,Flash 的类是用JAXB/XJC 生成的。当然这些生成的Java类并没有实现Externalizable接口,所以这里好像不能用我的方法。

一种可能性似乎是编写一个 XJC 插件,使类实现 Externalizable。但这看起来是一项艰巨的工作......

有人知道如何解决这个问题吗?

【问题讨论】:

  • JAXB Inheritance Plugin 只需在类定义中添加“implement NameOfInterface”即可使生成的类“实现”接口。为了实现必要的方法,需要开发另一个插件。
  • 目前我正在尝试为此开发一个 JAXB 插件。这似乎不像我之前想象的那么糟糕。

标签: java flash serialization marshalling blazeds


【解决方案1】:

几个选项:

  • 在您的 JAXB 生成的类之上构建一组对象。我会选择这个选项。
  • 在您的 JAXB 生成的类之上构建一个代理,该代理将相应地序列化/反序列化每个对象。如果您的对象正在实现 Externalizable 接口,您可以使用 Java 中的动态代理 API,无需动态代码生成
  • 修改 blazeds 分布。我会远离它,但它是可行的。

【讨论】:

  • 您的第一个建议难道不是要再次实现使用 JAXB 生成的类吗?实际上我不太明白你的第一个和第二个建议之间的区别。
【解决方案2】:

我终于开发了一个 JAXB/XJC 插件。 (如果有人感兴趣,请联系我。) 现在工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    相关资源
    最近更新 更多