你的問題是不明確的,因爲它不會告訴你是在什麼情況下:
你部署新的GWT應用程序,並希望新的服務器端響應舊的客戶端。
您部署新的GWT應用程序,並希望客戶端瀏覽器立即用新版本替換GWT客戶端。
我想先說說情況2。我認爲你來自servlet和JSP的背景,加上動態生成的HTML和Javascript。在那些環境中,每當客戶端請求服務器時,客戶端都會立即更換。這是因爲客戶端UI由服務器生成的新響應刷新。
在GWT中,根面板未刷新。根面板由託管html頁面保存。如果託管html頁面沒有刷新,GWT客戶端將永遠是舊版本。這是AJAX和GWT的想法。您不希望刷新網頁,而是允許網頁不斷髮出/接收異步請求/響應。
可能會提醒您,GWT已編譯爲javascript。
爲了獲得新版本,您必須刷新網頁。 GWT技術沒有辦法讓新的javascript潛入瀏覽器來替換舊的javascript組件,除非刷新頁面。
加載GWT JavaScripts時,腳本標記源鏈接已經被讀取。除非刷新頁面,否則這些鏈接將不會被重新讀取。如果這些鏈接不被重新讀取,那麼新的javascripts將不會被重新加載。
在處理AJAX時,您需要分離您的JSP/servlet體驗。
回到情況1 ..
由於未加載新的GWT UI版本,因爲你沒有執行刷新,你就必須通過與的老版本的用戶界面所期望的數據結構之間incongruences新的服務器端版本。如果你能保證RPC或客戶端 - 服務器數據結構和交換序列的穩定性,我相信你不應該有問題。
但是,對於GAE,序列號ID很重要。您可能更改了POJO的數據結構而不更新序列號ID。這會混淆GAE客戶端服務器的流量,因爲......嗯......我可以微弱地回想起我遇到的問題的確切順序 - 您最好自己仔細閱讀GAE pojo序列化標識。
你使用什麼app/web服務器? – milan 2011-12-30 09:47:43
AppEngine with Java – Mayumi 2011-12-30 14:09:13