org.springframework.remoting.support

## Class RemoteInvocationTraceInterceptor

- java.lang.Object
- - org.springframework.remoting.support.RemoteInvocationTraceInterceptor

- All Implemented Interfaces:
    Advice, Interceptor, MethodInterceptor

      public class RemoteInvocationTraceInterceptor
      extends Object
      implements MethodInterceptor

  AOP Alliance MethodInterceptor for tracing remote invocations. Automatically applied by RemoteExporter and its subclasses.

  Logs an incoming remote call as well as the finished processing of a remote call at DEBUG level. If the processing of a remote call results in a checked exception, the exception will get logged at INFO level; if it results in an unchecked exception (or error), the exception will get logged at WARN level.

  The logging of exceptions is particularly useful to save the stacktrace information on the server-side rather than just propagating the exception to the client (who might or might not log it properly).

  Since:
    1.2
  Author:
    Juergen Hoeller
  See Also:
    `RemoteExporter.setRegisterTraceInterceptor(boolean)`, `RemoteExporter.getProxyForService()`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static Log` | `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RemoteInvocationTraceInterceptor()` Create a new RemoteInvocationTraceInterceptor.
    `RemoteInvocationTraceInterceptor(String exporterName)` Create a new RemoteInvocationTraceInterceptor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Object` | `invoke(MethodInvocation invocation)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### logger

          protected static final Log logger

  - ### Constructor Detail

    - #### RemoteInvocationTraceInterceptor

          public RemoteInvocationTraceInterceptor()

      Create a new RemoteInvocationTraceInterceptor.

    - #### RemoteInvocationTraceInterceptor

          public RemoteInvocationTraceInterceptor(String exporterName)

      Create a new RemoteInvocationTraceInterceptor.
      Parameters:
        `exporterName` - the name of the remote exporter (to be used as context information in log messages)

  - ### Method Detail

    - #### invoke

          public Object invoke(MethodInvocation invocation)
                        throws Throwable

      Specified by:
        `invoke` in interface `MethodInterceptor`
      Throws:
        `Throwable`