org.springframework.remoting.support
Class RemoteInvocationTraceInterceptor

java.lang.Object
  extended by org.springframework.remoting.support.RemoteInvocationTraceInterceptor

public class RemoteInvocationTraceInterceptor
extends java.lang.Object

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

exporterNameClause

private final java.lang.String exporterNameClause
Constructor Detail

RemoteInvocationTraceInterceptor

public RemoteInvocationTraceInterceptor()
Create a new RemoteInvocationTraceInterceptor.


RemoteInvocationTraceInterceptor

public RemoteInvocationTraceInterceptor(java.lang.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 java.lang.Object invoke(MethodInvocation invocation)
                        throws java.lang.Throwable
Throws:
java.lang.Throwable