org.springframework.remoting.caucho
Class HessianClientInterceptor

java.lang.Object
  extended byorg.springframework.remoting.support.RemoteAccessor
      extended byorg.springframework.remoting.support.UrlBasedRemoteAccessor
          extended byorg.springframework.remoting.caucho.HessianClientInterceptor
All Implemented Interfaces:
Advice, InitializingBean, Interceptor, MethodInterceptor
Direct Known Subclasses:
HessianProxyFactoryBean

public class HessianClientInterceptor
extends UrlBasedRemoteAccessor
implements MethodInterceptor, InitializingBean

Interceptor 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: Hessian services accessed with this proxy factory do not have to be exported via HessianServiceExporter, as there isn't any special handling involved. Therefore, you can also access services that are exported via Caucho's HessianServlet.

Since:
29.09.2003
Author:
Juergen Hoeller
See Also:
RemoteAccessor.setServiceInterface(java.lang.Class), UrlBasedRemoteAccessor.setServiceUrl(java.lang.String), setUsername(java.lang.String), setPassword(java.lang.String), HessianServiceExporter, HessianProxyFactoryBean, HessianProxyFactory

Field Summary
 
Fields inherited from class org.springframework.remoting.support.RemoteAccessor
logger
 
Constructor Summary
HessianClientInterceptor()
           
 
Method Summary
 void afterPropertiesSet()
          Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
protected  RemoteAccessException convertHessianAccessException(Throwable ex)
          Convert the given Hessian access exception to an appropriate Spring RemoteAccessException.
protected  Object createHessianProxy(com.caucho.hessian.client.HessianProxyFactory proxyFactory)
          Create the Hessian proxy that is wrapped by this interceptor.
 Object invoke(MethodInvocation invocation)
           
 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 setUsername(String username)
          Set the username that this factory should use to access the remote service.
 
Methods inherited from class org.springframework.remoting.support.UrlBasedRemoteAccessor
getServiceUrl, setServiceUrl
 
Methods inherited from class org.springframework.remoting.support.RemoteAccessor
getServiceInterface, setServiceInterface
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HessianClientInterceptor

public HessianClientInterceptor()
Method Detail

setUsername

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:
HessianProxyFactory.setUser(java.lang.String)

setPassword

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:
HessianProxyFactory.setPassword(java.lang.String)

setOverloadEnabled

public void setOverloadEnabled(boolean overloadEnabled)
Set whether overloaded methods should be enabled for remote invocations. Default is false.

See Also:
HessianProxyFactory.setOverloadEnabled(boolean)

afterPropertiesSet

public void afterPropertiesSet()
                        throws MalformedURLException
Description copied from interface: InitializingBean
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.

Specified by:
afterPropertiesSet in interface InitializingBean
Throws:
MalformedURLException

createHessianProxy

protected Object createHessianProxy(com.caucho.hessian.client.HessianProxyFactory proxyFactory)
                             throws MalformedURLException
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:
HessianProxyFactory.create(java.lang.Class, java.lang.String)

invoke

public Object invoke(MethodInvocation invocation)
              throws Throwable
Specified by:
invoke in interface MethodInterceptor
Throws:
Throwable

convertHessianAccessException

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


Copyright (C) 2003-2004 The Spring Framework Project.