私はマルチモジュールのMavenプロジェクト(約10モジュール)を提供しています。ここで、2つのモジュールはFlexプロジェクトで、対応するサーバープロジェクトはBlazeDS経由で通信します。Flex + BlazeDS +マルチモジュールビルドプロジェクト
サーバーモジュールは、共通のものを含む別のモジュールに依存しており、プロジェクト全体で共有されています。共通モジュールのオブジェクトを使用する場合、オブジェクトはシリアル化されず、AMFを介してSWFに送信されます。サーバーモジュール内のすべてがシリアル化されて正常に動作していますが、共通モジュール(サーバー側で有効な値を持つ)のオブジェクトはクライアントに送信されません。
私はこれを構築するためにFlexmojosを使用しています。共通プロジェクトのクラスを直列化で使用できるようにするために、そしてそれらをswfプロジェクトのRemoteClassオブジェクトとして使用できるようにするためには、どうすればよいですか?
基本的な構造は、これに類似している(私は試したことを簡素化するかなり):
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を共有できますか?私は現在、フレックスプロジェクトのメイキングをしようとしていますが、あなたがしたようにいくつかの苦労に直面しています。 –
申し訳ありませんが、公開されるべきではないたくさんのものが含まれているため、pom.xmlを共有できません。この特定の問題は、MyCommonObject.asクラスのcommon.model.MyCommonObjectを参照しないことによって解決されました。代わりに、私はserver.modelのcommon.model.MyCommonObjectのサブクラスを作成し、そのサブクラスに代わりにActionscriptを要求しました。 – thorseye
とにかく私に戻ってくれてありがとう。私の長い道のりで、私はこの問題を解決したことを正確に忘れていますが、私は単に正しいジャー/依存関係がないと確信しています。 –