public class

HessianClientInterceptor

extends UrlBasedRemoteAccessor
java.lang.Object
   ↳ org.springframework.remoting.support.RemotingSupport
     ↳ org.springframework.remoting.support.RemoteAccessor
       ↳ org.springframework.remoting.support.UrlBasedRemoteAccessor
         ↳ org.springframework.remoting.caucho.HessianClientInterceptor
Known Direct Subclasses

Class Overview

org.aopalliance.intercept.MethodInterceptor for accessing a Hessian service. Supports authentication via username and password. The service URL must be an HTTP URL exposing a Hessian service.

Hessian is a slim, binary RPC protocol. For information on Hessian, see the Hessian website

Note: There is no requirement for services accessed with this proxy factory to have been exported using Spring's HessianServiceExporter, as there is no special handling involved. As a consequence, you can also access services that have been exported using Caucho's com.caucho.hessian.server.HessianServlet.

See Also

Summary

[Expand]
Inherited Fields
From class org.springframework.remoting.support.RemotingSupport
Public Constructors
HessianClientInterceptor()
Public Methods
void afterPropertiesSet()
Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
Object invoke(MethodInvocation invocation)
void prepare()
Initialize the Hessian proxy for this interceptor.
void setChunkedPost(boolean chunkedPost)
Set whether to use a chunked post for sending a Hessian request.
void setDebug(boolean debug)
Set whether Hessian's debug mode should be enabled.
void setHessian2(boolean hessian2)
Set whether version 2 of the Hessian protocol should be used for parsing requests and replies.
void setHessian2Reply(boolean hessian2)
Set whether version 2 of the Hessian protocol should be used for parsing replies.
void setHessian2Request(boolean hessian2)
Set whether version 2 of the Hessian protocol should be used for parsing requests.
void setOverloadEnabled(boolean overloadEnabled)
Set whether overloaded methods should be enabled for remote invocations.
void setPassword(String password)
Set the password that this factory should use to access the remote service.
void setProxyFactory(HessianProxyFactory proxyFactory)
Set the HessianProxyFactory instance to use.
void setReadTimeout(long timeout)
Set the timeout to use when waiting for a reply from the Hessian service.
void setSendCollectionType(boolean sendCollectionType)
Set whether to send the Java collection type for each serialized collection.
void setSerializerFactory(SerializerFactory serializerFactory)
Specify the Hessian SerializerFactory to use.
void setUsername(String username)
Set the username that this factory should use to access the remote service.
Protected Methods
RemoteAccessException convertHessianAccessException(Throwable ex)
Convert the given Hessian access exception to an appropriate Spring RemoteAccessException.
Object createHessianProxy(HessianProxyFactory proxyFactory)
Create the Hessian proxy that is wrapped by this interceptor.
[Expand]
Inherited Methods
From class org.springframework.remoting.support.UrlBasedRemoteAccessor
From class org.springframework.remoting.support.RemoteAccessor
From class org.springframework.remoting.support.RemotingSupport
From class java.lang.Object
From interface org.springframework.beans.factory.BeanClassLoaderAware
From interface org.springframework.beans.factory.InitializingBean

Public Constructors

public HessianClientInterceptor ()

Public Methods

public void afterPropertiesSet ()

Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

public Object invoke (MethodInvocation invocation)

Throws
Throwable

public void prepare ()

Initialize the Hessian proxy for this interceptor.

Throws
RemoteLookupFailureException if the service URL is invalid

public void setChunkedPost (boolean chunkedPost)

Set whether to use a chunked post for sending a Hessian request.

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setChunkedPost

public void setDebug (boolean debug)

Set whether Hessian's debug mode should be enabled. Default is "false".

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setDebug

public void setHessian2 (boolean hessian2)

Set whether version 2 of the Hessian protocol should be used for parsing requests and replies. Default is "false".

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setHessian2Request

public void setHessian2Reply (boolean hessian2)

Set whether version 2 of the Hessian protocol should be used for parsing replies. Default is "false".

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setHessian2Reply

public void setHessian2Request (boolean hessian2)

Set whether version 2 of the Hessian protocol should be used for parsing requests. Default is "false".

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setHessian2Request

public void setOverloadEnabled (boolean overloadEnabled)

Set whether overloaded methods should be enabled for remote invocations. Default is "false".

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setOverloadEnabled

public void setPassword (String password)

Set the password that this factory should use to access the remote service. Default is none.

The password will be sent by Hessian via HTTP Basic Authentication.

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setPassword

public void setProxyFactory (HessianProxyFactory proxyFactory)

Set the HessianProxyFactory instance to use. If not specified, a default HessianProxyFactory will be created.

Allows to use an externally configured factory instance, in particular a custom HessianProxyFactory subclass.

public void setReadTimeout (long timeout)

Set the timeout to use when waiting for a reply from the Hessian service.

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setReadTimeout

public void setSendCollectionType (boolean sendCollectionType)

Set whether to send the Java collection type for each serialized collection. Default is "true".

public void setSerializerFactory (SerializerFactory serializerFactory)

Specify the Hessian SerializerFactory to use.

This will typically be passed in as an inner bean definition of type com.caucho.hessian.io.SerializerFactory, with custom bean property values applied.

public void setUsername (String username)

Set the username that this factory should use to access the remote service. Default is none.

The username will be sent by Hessian via HTTP Basic Authentication.

See Also
  • com.caucho.hessian.client.HessianProxyFactory#setUser

Protected Methods

protected RemoteAccessException convertHessianAccessException (Throwable ex)

Convert the given Hessian access exception to an appropriate Spring RemoteAccessException.

Parameters
ex the exception to convert
Returns
  • the RemoteAccessException to throw

protected Object createHessianProxy (HessianProxyFactory proxyFactory)

Create the Hessian proxy that is wrapped by this interceptor.

Parameters
proxyFactory the proxy factory to use
Returns
  • the Hessian proxy
Throws
MalformedURLException if thrown by the proxy factory
See Also
  • com.caucho.hessian.client.HessianProxyFactory#create