org.springframework.remoting
Class RemoteAccessException

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by java.lang.RuntimeException
              extended by org.springframework.core.NestedRuntimeException
                  extended by org.springframework.remoting.RemoteAccessException
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
RemoteConnectFailureException, RemoteInvocationFailureException, RemoteLookupFailureException, RemoteProxyFailureException

public class RemoteAccessException
extends NestedRuntimeException

Generic remote access exception. A service proxy for any remoting protocol should throw this exception or subclasses of it, in order to transparently expose a plain Java business interface.

When using conforming proxies, switching the actual remoting protocol e.g. from Hessian to Burlap does not affect client code. Clients work with a plain natural Java business interface that the service exposes. A client object simply receives an implementation for the interface that it needs via a bean reference, like it does for a local bean as well.

A client may catch RemoteAccessException if it wants to, but as remote access errors are typically unrecoverable, it will probably let such exceptions propagate to a higher level that handles them generically. In this case, the client code doesn't show any signs of being involved in remote access, as there aren't any remoting-specific dependencies.

Even when switching from a remote service proxy to a local implementation of the same interface, this amounts to just a matter of configuration. Obviously, the client code should be somewhat aware that it might be working against a remote service, for example in terms of repeated method calls that cause unnecessary roundtrips etc. However, it doesn't have to be aware whether it is actually working against a remote service or a local implementation, or with which remoting protocol it is working under the hood.

Since:
14.05.2003
Author:
Juergen Hoeller
See Also:
Serialized Form

Field Summary
private static long serialVersionUID
          Use serialVersionUID from Spring 1.2 for interoperability
 
Constructor Summary
RemoteAccessException(java.lang.String msg)
          Constructor for RemoteAccessException.
RemoteAccessException(java.lang.String msg, java.lang.Throwable cause)
          Constructor for RemoteAccessException.
 
Method Summary
 
Methods inherited from class org.springframework.core.NestedRuntimeException
contains, getMessage, getMostSpecificCause, getRootCause
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

private static final long serialVersionUID
Use serialVersionUID from Spring 1.2 for interoperability

See Also:
Constant Field Values
Constructor Detail

RemoteAccessException

public RemoteAccessException(java.lang.String msg)
Constructor for RemoteAccessException.

Parameters:
msg - the detail message

RemoteAccessException

public RemoteAccessException(java.lang.String msg,
                             java.lang.Throwable cause)
Constructor for RemoteAccessException.

Parameters:
msg - the detail message
cause - the root cause (usually from using an underlying remoting API such as RMI)