The Spring Framework

## org.springframework.remoting.support
Class RemoteInvocationBasedExporter

    java.lang.Object
      org.springframework.remoting.support.RemotingSupport
          org.springframework.remoting.support.RemoteExporter
              org.springframework.remoting.support.RemoteInvocationBasedExporter

All Implemented Interfaces:
  BeanClassLoaderAware

Direct Known Subclasses:
  JmsInvokerServiceExporter, RemoteInvocationSerializingExporter, RmiBasedExporter

    public abstract class RemoteInvocationBasedExporter

extends RemoteExporter

Abstract base class for remote service exporters that are based on deserialization of `RemoteInvocation` objects.

Provides a "remoteInvocationExecutor" property, with a `DefaultRemoteInvocationExecutor` as default strategy.

Since:
  1.1
Author:
  Juergen Hoeller
See Also:
  `RemoteInvocationExecutor`, `DefaultRemoteInvocationExecutor`

Field Summary

Fields inherited from class org.springframework.remoting.support.RemotingSupport
`logger`

Constructor Summary
`RemoteInvocationBasedExporter()`

Method Summary
`RemoteInvocationExecutor` `getRemoteInvocationExecutor()` Return the RemoteInvocationExecutor used by this exporter.
`protected Object` `invoke(RemoteInvocation invocation, Object targetObject)` Apply the given remote invocation to the given target object.
`protected RemoteInvocationResult` `invokeAndCreateResult(RemoteInvocation invocation, Object targetObject)` Apply the given remote invocation to the given target object, wrapping the invocation result in a serializable RemoteInvocationResult object.
`void` `setRemoteInvocationExecutor(RemoteInvocationExecutor remoteInvocationExecutor)` Set the RemoteInvocationExecutor to use for this exporter.

Methods inherited from class org.springframework.remoting.support.RemoteExporter
`checkService, checkServiceInterface, getExporterName, getProxyForService, getService, getServiceInterface, isRegisterTraceInterceptor, 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`

Constructor Detail

### RemoteInvocationBasedExporter

    public RemoteInvocationBasedExporter()

Method Detail

### setRemoteInvocationExecutor

    public void setRemoteInvocationExecutor(RemoteInvocationExecutor remoteInvocationExecutor)

  Set the RemoteInvocationExecutor to use for this exporter. Default is a DefaultRemoteInvocationExecutor.

  A custom invocation executor can extract further context information from the invocation, for example user credentials.

### getRemoteInvocationExecutor

    public RemoteInvocationExecutor getRemoteInvocationExecutor()

  Return the RemoteInvocationExecutor used by this exporter.

### invoke

    protected Object invoke(RemoteInvocation invocation,
                            Object targetObject)
                     throws NoSuchMethodException,
                            IllegalAccessException,
                            InvocationTargetException

  Apply the given remote invocation to the given target object. The default implementation delegates to the RemoteInvocationExecutor.

  Can be overridden in subclasses for custom invocation behavior, possibly for applying additional invocation parameters from a custom RemoteInvocation subclass. Note that it is preferable to use a custom RemoteInvocationExecutor which is a reusable strategy.

  Parameters:
    `invocation` - the remote invocation
    `targetObject` - the target object to apply the invocation to
  Returns:
    the invocation result
  Throws:
    `NoSuchMethodException` - if the method name could not be resolved
    `IllegalAccessException` - if the method could not be accessed
    `InvocationTargetException` - if the method invocation resulted in an exception
  See Also:
    `RemoteInvocationExecutor.invoke(org.springframework.remoting.support.RemoteInvocation, java.lang.Object)`

### invokeAndCreateResult

    protected RemoteInvocationResult invokeAndCreateResult(RemoteInvocation invocation,
                                                           Object targetObject)

  Apply the given remote invocation to the given target object, wrapping the invocation result in a serializable RemoteInvocationResult object. The default implementation creates a plain RemoteInvocationResult.

  Can be overridden in subclasses for custom invocation behavior, for example to return additional context information. Note that this is not covered by the RemoteInvocationExecutor strategy!

  Parameters:
    `invocation` - the remote invocation
    `targetObject` - the target object to apply the invocation to
  Returns:
    the invocation result
  See Also:
    `invoke(org.springframework.remoting.support.RemoteInvocation, java.lang.Object)`

The Spring Framework

Copyright © 2002-2008 The Spring Framework.