Thanks, Jens! Your tip along with using getSerializationPolicyName() from the ServiceDefTarget worked like a charm.
I ended up using this on the client:
final ServiceDefTarget serviceTarget = (ServiceDefTarget) storage;
serviceTarget.
setRpcRequestBuilder(new RpcRequestBuilder() {
@Override
protected RequestBuilder doCreate(String serviceEntryPoint) {
RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, "/my/url/"
+ key1 + "/" + key2);
builder.setHeader(SERIALIZATION_POLICY_HEADER, serviceTarget.getSerializationPolicyName());
return builder;
}
});
And this on the server in my RemoteServiceServlet:
String moduleBaseURL = request.getHeader(RpcRequestBuilder.MODULE_BASE_HEADER);
String strongName = request.getHeader(Headers.SERIALIZATION_POLICY_HEADER);
SerializationPolicy serializationPolicy = this.getSerializationPolicy(moduleBaseURL, strongName);
MyResult result = MyService.getInstance().getResult(id);
Method method = MyService.class.getMethod("getResult", new Class[] { Id.class });
return RPC.encodeResponseForSuccess(method, result, serializationPolicy);