5

みたいなリクエストがあります

5|0|7|http://localhost:8080/testproject/|29F4EA1240F157649C12466F01F46F60|com.test.client.GreetingService|greetServer|java.lang.String|myInput1|myInput2|1|2|3|4|2|5|5|6|7|

GWT が md5 値を生成する方法を知りたい29F4EA1240F157649C12466F01F46F60ですか? クライアントのIPと日付に基づいていますか? 誰でも正しいコードを教えてもらえますか? 履歴トークンに関するものを見つけただけですが、それは私には異なって見えます。

4

2 に答える 2

3

OK、いくつかの調査の後、答えを見つけたと思います。
あなたが探していたはずのキーワードは、" strong name " (または " strongName ") および/またはpermutationです。RPC 要求で順列の厳密な名前 (MD5 ハッシュ) を送信しているように見えるため、サーバー側で、リクエストが送信された順列を区別します。
コア関数はUtil.computeStrongNameであり、提供されたバイト配列の MD5 ハッシュ (d'oh) を計算し、キャッチを追加します。

/*
 * Include the lengths of the contents components in the hash, so that the
 * hashed sequence of bytes is in a one-to-one correspondence with the
 * possible arguments to this method.
 */

そこから、リンカーに戻って追跡し、次にこの関数を介してフィードしているPermutationResultに追跡しました。Util.computeStrongName

/**
 * The compiled JavaScript code as UTF8 bytes.
 */
byte[][] getJs();

ええ、それが少しでも役に立てば幸いです ;) これでも質問の答えが得られない場合 (または別の何かを探していた場合) は、試してみてくださいtrunk/user/src/com/google/gwt/user/client/rpc( RpcRequestBuilder.javaから始めてください)。

于 2010-02-02T23:58:44.193 に答える
0

Igor が言ったように、GWT はアプリケーション コードの MD5 ハッシュを使用して、アプリケーションの各バージョンの順列ごとに一意の名前を生成します。参照した特定のハッシュは、サーバー上の .gwt.rpc シリアル化ポリシー ファイルを識別する GWT RPC 要求ペイロードの一部です。このポリシー ファイルには、GWT RPC サービスで要求、応答、またはスローされた例外の一部としてシリアル化できる Java オブジェクトが示されています。

于 2010-06-25T00:23:55.840 に答える