package net.contextfw.remoting.fluent; import java.net.MalformedURLException; import com.caucho.hessian.client.HessianProxyFactory; import com.caucho.hessian.io.AbstractSerializerFactory; public class HessianClient implements RemotingConnection { private RemotingConnection serverConnection; @Override public Object invoke(Class<?> remotedInterface, ProxiedInvocation invocation) { Object rv = serverConnection.invoke(remotedInterface, invocation); if (rv instanceof InvocationError) { throw new RemotingException((InvocationError) rv); } else { return rv; } } public HessianClient(String url) throws MalformedURLException { this(url, null); } public HessianClient(String url, AbstractSerializerFactory customSerializerFactory) throws MalformedURLException { HessianProxyFactory factory = new HessianProxyFactory(); if (customSerializerFactory != null) { factory.getSerializerFactory().addFactory(customSerializerFactory); } serverConnection = (RemotingConnection) factory.create(RemotingConnection.class, url); } }