Oracle Fusion Middleware
Java API Reference for Oracle WebLogic Server
12c (12.1.2)

Part Number E27170-01

Package weblogic.rmi.spi

This package defines a Service Provider Interface (SPI) for RMI.

See:
          Description

Interface Summary
Channel Channel is used by the RMI runtime to represent the addressing information required to reach a process that hosts a remote object.
HostID HostID is used by the RMI runtime to represent the process that hosts a remote object.
 

Package weblogic.rmi.spi Description

This package defines a Service Provider Interface (SPI) for RMI. The SPI is generally implemented by a protocol specific layer upon which RMI calls will be transported.

An Abstract Model for RMI

When a client makes RMI request it must identify the server to communicate with, the object on the server to invoke on and the method on the object to invoke. Once the target has been identified, an OutboundRequest must be constructed, arguments marshaled to the request and the request invoked. Once invoked an InboundResponse is returned from which a return value or exception is unmarshaled. As well as arguments, a request or response may carry out-of-band information such as transaction context or security principle.

Exception Semantics

The following explains the exceptions semantics to which RMI service providers and the runtime must conform.

All exceptions thrown by the RMI runtime or the underlying service provider durning the invocation of an RMI method conform to these semantics in a uniform way in order to ensure the proper handling of messages in the context of cluster aware, transactions and security. These semantics are all derived from the Java 1.3 RMI API docs and the Java 2 RMI Specification. It is essential that any RMI implementation (service provider) conform with this specification not only to provide clarity in error reporting but also to ensure that fail-over code operates correctly.

/** * Invoking a method on an object that is no longer exported should result in * a NoSuchObjectException. */

/** * ??? Invoking a method that results in an java.lang.Error on the server * should result in a ServerError with the detail field set to the original * Error. */

/** * Invoking a remote method that results in the server-side implementation * throwing a RemoteExeption should result is a ServerException containing * the original remote exception in its detail. */

/** * Attempting to export an rmi object for which no stub can be found * should result in a StubNotFoundException. This can occur either as * a result of explicitly exporting an object (UnicastRemoteObject.export), * as a result of a remote method call returning a remote object, or as * a result of passing a remote object as a parameter in a remote method. */

/** * Invoking a remote method on an object with an unrecognized * host should result in an UnknownHostException. This may occur if * an RMI reference refers to a server by a DNS name that cannot be * resolved. */

/** * Invoking a remote method with parameters that can't be deserialized * should result in an UnmarshalException. */

/** * Invoking a remote method that returns an value that can't be deserialized * should result in an UnmarshalException. */


Copyright 1996, 2013, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Oracle Fusion Middleware
Java API Reference for Oracle WebLogic Server
12c (12.1.2)

Part Number E27170-01