You probably can try the com.google.gwt.rpc.RPC module though it has
been experimental for awhile. It seems to be a more efficient way of
encoding and decoding.
To use it it is almost the same as the other RPC:
1- Inherit the module: <inherits name='com.google.gwt.rpc.RPC'/>
2- Have you service interface extends the
com.google.gwt.rpc.client.RpcService
Ex:
/**
* The client side stub for the RPC service.
*/
@RemoteServiceRelativePath("myService ")
public interface MyService extends RpcService {
MyComplexObject myMethod(String name);
}
3- Have your implementation extends from
com.google.gwt.rpc.server.RpcServlet
Ex:
@SuppressWarnings("serial")
public class MyServiceImpl extends RpcServlet implements MyService {
public MyComplexObject myMethod(String input) {
return null;
}
}
4- You need the Async the same way as the other RPC service:
Ex:
public interface MyServiceAsync {
void myMethod(String input, AsyncCallback<MyComplexObject> callback);
}
This is it.