我想跟進這個問題gwt-serialization-policy-hosted-mode-out-of-sync。簡而言之 - 當我從託管瀏覽器執行RPC時,此調用會在服務器上失敗,併發生異常。第二次編譯相同的源文件產生不同的gwt.rpc文件集
INFO: GwtRpcEventSrvc: ERROR: The serialization policy file '/84EC7BA65AF8175BAA99B47877FDE163.gwt.rpc' was not found; did you forget to include it in this deployment?
SEVERE: GwtRpcEventSrvc: WARNING: Failed to get the SerializationPolicy '84EC7BA65AF8175BAA99B47877FDE163' for module 'http://host:19980/MYAPP/'; a legacy, 1.3.3 compatible, serialization policy will be used. Youmay experience SerializationExceptions as a result.
SEVERE: Exception while dispatching incoming RPC call
雖然當我從瀏覽器執行相同的RPC時,請求在服務器上成功執行。
此外,我觀察到GWT編譯器的一個奇怪行爲,可能導致託管瀏覽器模式的問題。
我假設當我做兩個後續的完全相同的代碼編譯,那麼單個編譯的結果應該是相同的。我的意思是至少xxxxx.html和yyyyy.gwt.rpc文件必須相同。 (其中xxxxx和yyyyy是諸如84EC7BA65AF8175BAA99B47877FDE163的長數字。)
目前我有兩個版本的我的項目。
- 的舊項目由GWT編譯1.7不從問題中gwt-serialization-policy-hosted-mode-out-of-sync
- 一個新的項目中描述的託管瀏覽器是由GWT編譯2.0.4遭遇。這個新項目是基於舊項目。此項目遭受託管的瀏覽器問題。
案例1:老項目與GWT 1.7
我帶着我的,是由GWT編譯1.7舊項目。我做了兩個編譯,我比較了編譯的工件。 gwt.rpc文件相同而html文件有不同的內容和名稱。由於gwt.rpc文件是相同的,我沒有託管瀏覽器的問題。
案例2:與GWT 2.0.4
我編了兩遍,都gwt.rpc和html文件的新項目是不同的。因此,託管瀏覽器中的RPC調用由於缺少gwt.rpc文件而在服務器上失敗。
案例3:老項目,GWT 2.0.4
我編了兩遍,都gwt.rpc和html文件是不同的。因此,託管瀏覽器中的RPC調用由於缺少gwt.rpc文件而在服務器上失敗。
我做了一些調查,並確定當我註釋掉一個類中的數據成員從服務器傳輸到客戶端的數據,然後編譯的文件開始相同。
class Data implements IsSerializable {
List<IsSerializable> data;
...
}
- 我想做同樣的事情,在新的項目,但它似乎有很多類進行修改。因此,隨着項目的增長,問題在增加。
我不知道用什麼來代替
List<IsSerializable> data;
來傳輸數據。