2

GWT-GAEを使用していますが、 RPCを処理する際に問題が発生しました。クライアント側でサーバー側のエンティティ クラスを 使用できません。

その質問に対するこの最初の回答を確認しました[こちら]

しかし、解決策は他のエラーを引き起こし、実装が難しすぎる

つまり、サーバー側のクラスをクライアント側のクラスにインポートする際の問題は、上記のリンクで彼が言った人 がいるということです: GWT について留意すべき点がいくつかあります: サーバー側のクラスはクライアント側をインポートできますクラスですが、その逆はありません (通常)。クライアント側は Google App Engine ライブラリをインポートできません (つまり、com.google.appengine.api.users.User)

そうであれば、この問題を克服するには、クライアントインターフェイスでサーバー側のクラスを使用する必要があります

ヒント: JDO と No-SQL データベース (GAE Datastore) を使用しています

前もって感謝します

4

2 に答える 2

3

この引用が意味することは、RPC を介してクライアントに送信するコードはすべて Javascript に変換する必要があるということです。したがって、Javascript に変換できない Java コンストラクトまたはライブラリは、クライアントでは機能しません。クライアントで動作するコードはすべてサーバーでも動作する (はず) であり、サーバーで実行されるコードは Javascript で同等のものに変換する必要がないため、この制限は適用されません。

あなたの特定の問題を解決するために、あなたが直面している問題に関するより具体的な情報が必要です. 通常、RPC を介して送信したいものは、モデル データをクライアントに転送するだけのオブジェクトであり、そこでデータを使用できます。これは特に、モデルがサーバーで Javascript に変換できないコードを使用している場合に当てはまります。

言い換えると、エンティティ クラスがサーバー固有のコードを使用している場合、そのコードをサーバーに残して、クライアントに必要な cod と共にデータのみを送信する必要がありますが、それは実際には可能です。クライアントに送信されます。これは、GWT RPC と新しいRequestFactoryとの良い違いです。これは、直面している問題である場合におそらく必要になるものです。

于 2013-02-12T05:45:28.507 に答える
0

http://code.google.com/p/objectify-appengine/を使用すると、エンティティ クラスを <source path='client'/> または <source path='shared'/> (サーバー側など) に配置できます。 Stock をデータベースからロードして「そのまま」クライアントに送信することができます。次に、クライアントで Stock を変更するか、新しい Stock を作成してサーバーに送信できます)。

于 2013-02-12T06:10:21.167 に答える