First I'd like to explain what I mean by RPC. I'd like to be able to
write interfaces like this (simple Java interface):

public interface EchoService {
  String echo(String message);
}

The framework would allow the creation of client classes that would
handle the serialization from/to the RPC service. Of course the
framework should support the serialization of ArrayLists, HashMaps and
other collections and should also support the serialization of objects
marked with the "java.io.Serializable" interface (or some other
interface).
We would create the RPC Client this way:

EchoService echoService =
RpcClientFactory.createInstance(EchoService.class,"http://bla.com/
smartApp/echo");

And of course use it this way:

String echoMessage = echoService.echo("The message !!!");

The server side servlet would implement the previously mentioned
interface.
public class Service extends WhateverServlet implements EchoService {
    @Override
    String echo(String message) {
        return "server sends:" + message;
    }
}

A few additional nice features to have would be:
-support for asynchronous calls (where the developer would provide a
callback for handling the result, similar to GWT RPC)
-the developers should be able to access the RPC client somehow to be
able to handle Cookies or other http headers.
-the client side should be usable from Android.

After a long search I have found that the framework that most closely
matches these requirements is Hessian (http://hessian.caucho.com/). It
uses a binary protocol so it should be very fast and it works on
Android. AFAIK it does not support async calls. However, not all is
well. The current Hessian implementation does not handle exceptions
well. It throws a SecurityException like this:

java.lang.SecurityException: java.lang.IllegalAccessException:
Reflection is not allowed on private java.lang.Throwable
java.lang.Throwable.cause

I considered GWT RPC for a while but it does not have a proper Java
client or I could not find one. So I wanted to ask is there any other
library that could be used in this case? Could the App engine team
write such a library and add it to the SDK. Any suggestions?

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to