org.springframework.remoting.caucho
Class HessianExporter

java.lang.Object
  extended by org.springframework.remoting.support.RemotingSupport
      extended by org.springframework.remoting.support.RemoteExporter
          extended by org.springframework.remoting.caucho.HessianExporter
All Implemented Interfaces:
BeanClassLoaderAware, InitializingBean
Direct Known Subclasses:
HessianServiceExporter, SimpleHessianServiceExporter

public class HessianExporter
extends RemoteExporter
implements InitializingBean

General stream-based protocol exporter for a Hessian endpoint.

Hessian is a slim, binary RPC protocol. For information on Hessian, see the Hessian website. Note: As of Spring 3.0, this exporter requires Hessian 3.2 or above.

Since:
2.5.1
Author:
Juergen Hoeller
See Also:
invoke(java.io.InputStream, java.io.OutputStream), HessianServiceExporter, SimpleHessianServiceExporter

Field Summary
static String CONTENT_TYPE_HESSIAN
           
 
Fields inherited from class org.springframework.remoting.support.RemotingSupport
logger
 
Constructor Summary
HessianExporter()
           
 
Method Summary
 void afterPropertiesSet()
          Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
protected  void doInvoke(com.caucho.hessian.server.HessianSkeleton skeleton, InputStream inputStream, OutputStream outputStream)
          Actually invoke the skeleton with the given streams.
 void invoke(InputStream inputStream, OutputStream outputStream)
          Perform an invocation on the exported object.
 void prepare()
          Initialize this exporter.
 void setDebug(boolean debug)
          Set whether Hessian's debug mode should be enabled, logging to this exporter's Commons Logging log.
 void setSendCollectionType(boolean sendCollectionType)
          Set whether to send the Java collection type for each serialized collection.
 void setSerializerFactory(com.caucho.hessian.io.SerializerFactory serializerFactory)
          Specify the Hessian SerializerFactory to use.
 
Methods inherited from class org.springframework.remoting.support.RemoteExporter
checkService, checkServiceInterface, getExporterName, getProxyForService, getService, getServiceInterface, setInterceptors, setRegisterTraceInterceptor, setService, setServiceInterface
 
Methods inherited from class org.springframework.remoting.support.RemotingSupport
getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTENT_TYPE_HESSIAN

public static final String CONTENT_TYPE_HESSIAN
See Also:
Constant Field Values
Constructor Detail

HessianExporter

public HessianExporter()
Method Detail

setSerializerFactory

public void setSerializerFactory(com.caucho.hessian.io.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.


setSendCollectionType

public void setSendCollectionType(boolean sendCollectionType)
Set whether to send the Java collection type for each serialized collection. Default is "true".


setDebug

public void setDebug(boolean debug)
Set whether Hessian's debug mode should be enabled, logging to this exporter's Commons Logging log. Default is "false".

See Also:
HessianProxyFactory.setDebug(boolean)

afterPropertiesSet

public void afterPropertiesSet()
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

prepare

public void prepare()
Initialize this exporter.


invoke

public void invoke(InputStream inputStream,
                   OutputStream outputStream)
            throws Throwable
Perform an invocation on the exported object.

Parameters:
inputStream - the request stream
outputStream - the response stream
Throws:
Throwable - if invocation failed

doInvoke

protected void doInvoke(com.caucho.hessian.server.HessianSkeleton skeleton,
                        InputStream inputStream,
                        OutputStream outputStream)
                 throws Throwable
Actually invoke the skeleton with the given streams.

Parameters:
skeleton - the skeleton to invoke
inputStream - the request stream
outputStream - the response stream
Throws:
Throwable - if invocation failed