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フレームワークで実行できる場合は、明示的に実装せずにこのデータを取得したいと考えています。