This is always happening if you modify any serializable class that is used 
by any of your GWT-RPC service. A modification will change the filenames of 
all the *.rpc files and users that are already logged in while you do the 
update will still use the old hash name. The server then can not find the 
old *.rpc files for the old hash and will throw the above exception.

To solve this we first started to catch the exception and treated it as 
"app has been updated" notification which causes the app to reload. But 
since then we moved to a dynamic host page. That means we can now embed any 
data in JSON format into the host page and the app reads this data on 
initialization. With this in place we now add an app version to the host 
page and send this app version to the server on each request (HTTP header). 
A ServletFilter on the server checks the app version, compares it to the 
server version and if the client is outdated it sends back a HTTP 409 
CONFLICT response with the status APP_OUTDATED. The client app checks for 
this response, notifies the user and reloads the app.

In addition we also reload the app if a split point could not be 
downloaded. This can happen sometimes after an app update, if permutation 
names have changed and the logged in user tries to load a split point 
without doing a GWT-RPC request beforehand.

So far it works pretty well for us.

-- J.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to