Swing-Applet to Spring communication protocol

We have a Swing Applet client that needs to communicate with a Spring/hibernate application running on tomcat, the requirements are pretty standard , passing data objects through and forth, considering firewalls and performance.
the current implementation is soap with axis 1 (that has some limitations on transmitting hibernate objects and proxies,have to set null on proxies before sending them with axis).

what would you consider as a replacement to soap/axis? Rest? RMI? Spring remoting?

Comments

Note that REST is a paradigm, not a wrapper technology around a Java API. Of course you can wrap Java API with HTTP RPC, but it won't be RESTful

We has the same problem in some customer.

The solution was hessian.

http://hessian.caucho.com/

As Itai specified, for this client we are using HESSIAN over SSL protocol combined with Hibernate which I highly recommend. This is the second client I know of who is using HESSIAN over SSL with no known issues.

A second option is BURLAP, but I have no experience with it whatsoever.

If you know the interface you might consider my open source project Tofigurator on Google Code.

http://code.google.com/p/tofigurator/

It is DI and IOC implementing tool, might be considered as really lightweight Spring.

The main idea of the project is clear cut between java objects and configuration which is multidimensional XML files.

I am going to release soon a version which will allow export of configuration into XML string (now it does to file), so then you can send this string through whatever protocol you have (even email).

Sending and receiving only string representation of inner object structure with all values at any place of the code and at any time could make your application very flexible and independent.

I have done something like this when I had to pass and receive objects between MDB and application loaded from WAR where because of Class Loaders "Class Cast Exception" were throwing.

Here in CA people already using my tofigurator for objects persistency, messaging between almost incompatible systems, customization and configuration.

All this can also make you consider Spring. Although I don't know exactly how to do it using Spring syntax, the fact that it is DI and IOC implementation makes me thinking that they also must have such mechanism.

Maybe it is a part of Spring Integration messaging system.