ConfigProperty.idPropertyMapサーバー側で埋められます。(ログ出力で確認)
クライアント側でアクセスすると、空であることが示されます。:-((ログ出力で確認)
これはデフォルトの動作ですか?(私はそうは思いません)問題はおそらく内部クラスConfigProperty.IdPropertyMap、java.util.HashMap使用法、シリアル化、またはいくつかのフィールドアクセス修飾子の問題に関連していますか?
ご協力いただきありがとうございます
//転送オブジェクト
パブリッククラスConfigPropertyは、IsSerializable、Comparable{を実装します
..。
static publicclassIdPropertyMapはHashMapを拡張します
IsSerializableを実装します
{{
..。
}
保護された静的IdPropertyMapidPropertyMap= new IdPropertyMap();
..。
}
//サーバーサービス
パブリッククラスManagerServiceImplはRemoteServiceServlet実装を拡張します
ManagerService
{{
..。
public IdPropertyMap getConfigProps(String timeToken)
ConfiguratorExceptionをスローします
{{
..。
}
}
いくつかの良い答えの後に下から追加されました(ありがとう!):
結論:静的フィールド同期は現在実装/サポートされていません。誰か/私は機能リクエストを提出する必要があります
ちょうど私の視点(GWTに恋に落ちた初心者:-)):
私はかなりよく理解しています(完璧ではありません!;-))「グローバル」変数同期の考えられる影響(依存関係グラフまたは注釈の使用が役立つ可能性があります)。しかし、新しい(そうでなければ経験豊富なJava EE / web)ユーザーからは、次のようになります。
いくつかのクラスを作成します
myapp.shared.dto.MyClass(dto =データ転送オブジェクト)それらのオブジェクト(およびおそらく他のいくつかのDTO)のコレクションを表す静的フィールドをいくつか追加します
クライアント側でもこれを行うことができ、他のすべての静的メソッドも同様に機能します
動作しないのは同期だけです(そもそもそれほど悪くはありません)
しかし、いくつかの提供された注釈は、@Transfer static Collection<MyClass> myObjList;これがもたらす影響と利点を知っているように見えるので、便利だとしましょう。
私の場合、クライアントはより静的であるため、かなり単純ですが、GWTフレームワークで実行できる場合は、明示的に実装せずにこのデータを取得したいと考えています。