org.springframework.remoting.support
Class RemoteInvocationTraceInterceptor

java.lang.Object
  extended by 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
protected static Log logger
           
 
Constructor Summary
RemoteInvocationTraceInterceptor()
          Create a new RemoteInvocationTraceInterceptor.
RemoteInvocationTraceInterceptor(String exporterName)
          Create a new RemoteInvocationTraceInterceptor.
 
Method Summary
 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