It turns out that this Spring-MVC and GWT hybrid technique is being used in the code base at my new job - no wonder the error I was getting was similar! Thanks for this posting - it helped me identify the issue and fix it. The code we had was based on the old code from the article you posted - or whatever that code was based on! Plagiarism abound!
To summarize, that article proposes a way to integrate GWT with Spring-MVC. The crux of the solution is to provide a Servlet servlet class that combines a Spring MVC Controller with a GWT RemoteServiceServlet. Serializable DTO objects were not supported since (I presume) the code was based on pre-GWT-1.4 code, which couldn't cope with DTOs that didn't implement GWT's isSerializable marker interface. The update to the controller class is very simple once you know what's going on...
The two fixed lines I see simply pass through the SerializationPolicyProvider (which is the 'this' in the last parameter to RPC.decodeRequest() method. The calling class extends GWT's RemoveServiceServlet, which is a SerializationPolicyProvider). This simple fix I presume causes the updated (post 1.4) GWT code to be invoked, which can handle Serializable as well as isSerializable classes. The SerializationPolicyProvider looks at the serializationPolicy.
The second fix passes the serializationPolicy through to the RPC.invokeAndEncodeResponse() method. I presume this is the *.gwt.rpc whitelist of DTO objects that were verified when the GWT module was compiled.