我有一个多模块Maven项目(约10个模块),其中2个模块是Flex项目及其相应的服务器项目,通过BlazeDS进行通信。Flex + BlazeDS +多模块maven项目
服务器模块依赖于另一个包含公共事物的模块,在整个项目中共享。使用公共模块中的对象时,对象不会被序列化并通过AMF发送到SWF。服务器模块中的所有内容都是序列化的并且工作正常,但来自公共模块(服务器端具有有效值)的对象不会发送到客户端。
我正在使用Flexmojos来构建它。我需要做些什么来使公共项目中的类可用于序列化,并且能够在我的swf项目中将它们用作RemoteClass对象?
的基本结构与此类似(I一直如此简化它相当多的):
SWF模块(柔性):
类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; }
}
服务器模块(爪哇):
类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;
}
}
共模块(爪哇)
类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;
}
}
你能分享你的pom.xml吗?我目前正在努力修复一个flex项目,并且像你一样面对一些困难。 – 2013-10-08 10:07:15
对不起,无法共享pom.xml,因为它包含许多不应公开的内容。这个特定的问题是通过不重新调用MyCommonObject.as类中的common.model.MyCommonObject来解决的。相反,我在server.model中创建了common.model.MyCommonObject的子类,并将其从Actionscript转换为该子类。 – thorseye 2013-10-08 13:24:10
感谢您回复我。在漫长的工作之路上,我忘记了为我解决了这个问题,但我确信我没有正确的罐子/依赖关系。 – 2013-11-04 16:35:33