Friday, February 22, 2013

Re: IncompatibleRemoteServiceException : The response can not be Deserialized

We use RemoveServiceObfuscateTypeNames without issues.

In your request payload you see 7|1| at the beginning. The first value is the GWT-RPC version and the second value describes the GWT-RPC flags. A flag 1 means type names are obfuscated. The flag can be found in AbstractSerializationStream.FLAG_ELIDE_TYPE_NAMES.

In your response from the server (which has to be read backwards) you see 0,7 at the end. So GWT-RPC version 7 matches but the server sends back 0 as flags. This should be 1 as well.

In RemoteServiceServlet.processCall()#208 you see that the flags present in the server request are passed into RPC.invokeAndEncodeResponse() and thus the same flags should be used while generating the response. So maybe thats a good candidate for a breakpoint to see if rpcRequest.getFlags() returns 0 or 1. Given your request payload it should be 1. 

Later on, these flags are just passed to the stream writer via a setter method (RPC.encodeRequest()#601) so they clearly shouldn't change at all during request processing and response building. 


-- 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 google-web-toolkit+unsubscribe@googlegroups.com.
To post to this group, send email to google-web-toolkit@googlegroups.com.
Visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments:

Post a Comment