我有一个多模块 Maven 项目(大约 10 个模块),其中 2 个模块是一个 flex 项目及其相应的服务器项目,通过 BlazeDS 进行通信。
服务器模块依赖于另一个包含通用事物的模块,在整个项目中共享。使用公共模块中的对象时,不会对对象进行序列化并通过 AMF 将其发送到 SWF。服务器模块中的所有内容都被序列化并且工作正常,但是来自公共模块的对象(在服务器端具有有效值)不会发送到客户端。
我正在使用 Flexmojos 来构建它。我必须做什么才能使公共项目中的类可用于序列化,并能够在我的 swf 项目中将它们用作 RemoteClass 对象?
基本结构与此类似(我已经尝试过简化了很多):
swf 模块 (Flex):
MyObject.as 类:
package swf.model {
[RemoteClass(alias="server.model.MyObject")]
public class MyObject {
public var name:String;
public var common:MyCommonObject;
}
}
MyCommonObject.as 类:
package swf.model {
[RemoteClass(alias="common.model.MyCommonObject")]
public class MyCommonObject {
public var commonNumber:Number; }
}
服务器模块(Java):
MyObject.java 类:
package server.model;
import common.model.MyCommonObject;
public class MyObject {
private String name;
private MyCommonObject common;
public MyObject() {}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public MyCommonObject getCommon() {
return common;
}
public void setCommon(MyCommonObject common) {
this.common= common;
}
}
通用模块 (Java)
MyCommonObject.java 类:
package common.model;
public class MyCommonObject{
private Double commonNumber;
public MyCommonObject() {}
public Double getCommonNumber() {
return commonNumber;
}
public void setCommonNumber(Double commonNumber) {
this.commonNumber= commonNumber;
}
}