2010-01-27 84 views
4

我有一樣的要求:Google Web Toolkit(gwt) - 如何生成post標記?

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如何生成「29F4EA1240F157649C12466F01F46F60」的MD5值?它是基於客戶端IP和日期嗎?任何人都可以將我指向正確的代碼?我只是找到關於歷史記號的東西,但是這對我來說看起來不同。

回答

3

好的,經過一番研究,我想我找到了答案。
你應該一直在尋找的關鍵詞是「強名稱」(或「強名稱」)和/或排列,因爲它似乎與RPC請求他們送出去的permuatation強名稱(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. 
*/ 

從那裏,我跟蹤回linkers再到PermutationResult其通過此功能餵養Util.computeStrongName

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

嗯,我希望,至少是有點幫助的;)如果這仍然沒有回答你的問題(或者你正在尋找不同的東西),嘗試在trunk/user/src/com/google/gwt/user/client/rpc(從開始)。

0

正如Igor所說,GWT使用應用程序代碼的MD5哈希值爲每個應用程序版本的每個排列組合生成唯一的名稱。您引用的特定哈希是標識服務器上的.gwt.rpc序列化策略文件的GWT RPC請求有效內容的一部分。該策略文件指出哪些Java對象可以序列化爲GWT RPC服務中的請求,響應或拋出的異常的一部分。