У меня есть проект Maven с несколькими модулями (около 10 модулей), где 2 из модулей - проект flex и соответствующий ему серверный проект, сообщающийся через BlazeDS.Flex + BlazeDS + Multi модуль maven project
Серверный модуль зависит от другого модуля, содержащего общие вещи, разделяемого по всему проекту. При использовании объектов из общего модуля объекты не сериализуются и отправляются через AMF в SWF. Все в серверном модуле сериализуется и работает нормально, но объекты из общего модуля (который имеет допустимые значения на стороне сервера) не отправляются клиенту.
Я использую Flexmojos для его создания. Что мне нужно сделать, чтобы сделать классы в общем проекте доступными для сериализации и быть в состоянии использовать их как объекты RemoteClass в моем SWF-проекте?
Основная структура похожа на это (я пробовал так упростить его совсем немного):
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;
}
}
Можете ли вы поделиться своим pom.xml для этого. В настоящее время я пытаюсь привить проект flex и столкнуться с какой-то борьбой, как вы это делали. –
Извините, не могу передать pom.xml, поскольку он содержит много материала, который не должен быть общедоступным.Эта конкретная проблема была решена путем отказа от common.model.MyCommonObject в классе MyCommonObject.as. Вместо этого я создал подкласс common.model.MyCommonObject в server.model и вместо этого был добавлен к этому подклассу из ActionScript. – thorseye
Спасибо, что вернулись ко мне. На моем длинном пути к maven я забыл точно, что решило эту проблему для меня, но я уверен, что у меня просто не было подходящих банок/зависимостей. –