is new.
java.lang.Objectjava.rmi.server.RemoteObject
java.rmi.server.RemoteServer
java.rmi.server.UnicastRemoteObject
Used for exporting a remote object with JRMP and obtaining a stub that communicates to the remote object.
The UnicastRemoteObject class defines a non-replicated remote object whose references are valid only while the server process is alive. The UnicastRemoteObject class provides support for point-to-point active object references (invocations, parameters, and results) using TCP streams.
For the constructors and static exportObject methods below, the stub for a remote object being exported is obtained as follows:
Objects that require remote behavior should extend RemoteObject, typically via UnicastRemoteObject. If UnicastRemoteObject is not extended, the implementation class must then assume the responsibility for the correct semantics of the hashCode, equals, and toString methods inherited from the Object class, so that they behave appropriately for remote objects.
If the remote object is exported using the
UnicastRemoteObject.exportObject(Remote)
A "root class" is determined as follows: if the remote object's class directly implements an interface that extends
Remote
, then the remote object's class is the root class; otherwise, the root class is the most derived superclass of the remote object's class that directly implements an interface that extends Remote.
The name of the stub class to load is determined by concatenating the binary name of the root class with the suffix "_Stub".
The stub class is loaded by name using the class loader of the root class. The stub class must extend
RemoteStub
and must have a public constructor that has one parameter, of type
RemoteRef
.
Finally, an instance of the stub class is constructed with a
RemoteRef
If the appropriate stub class could not be found, or the stub class could not be loaded, or a problem occurs creating the stub instance, a
StubNotFoundException
For all other means of exporting:
If the remote object's stub class (as defined above) could not be loaded or the system property java.rmi.server.ignoreStubClasses is set to "true" (case insensitive), a
Proxy
The proxy's class is defined by the class loader of the remote object's class.
The proxy implements all the remote interfaces implemented by the remote object's class.
The proxy's invocation handler is a
RemoteObjectInvocationHandler
instance constructed with a
RemoteRef
.
If the proxy could not be created, a
StubNotFoundException
Otherwise, an instance of the remote object's stub class (as described above) is used as the stub.
Serialized Form
| Field Summary |
|---|
| Fields inherited from class java.rmi.server. RemoteObject |
|---|
| ref |
| Constructor Summary | |
|---|---|
| protected |
UnicastRemoteObject
() Creates and exports a new UnicastRemoteObject object using an anonymous port. |
| protected |
UnicastRemoteObject
(int port) Creates and exports a new UnicastRemoteObject object using the particular supplied port. |
| protected |
UnicastRemoteObject
(int port,
RMIClientSocketFactory
csf,
RMIServerSocketFactory
ssf) Creates and exports a new UnicastRemoteObject object using the particular supplied port and socket factories. |
| Method Summary | |
|---|---|
| Object |
clone
() Returns a clone of the remote object that is distinct from the original. |
| static RemoteStub |
exportObject
(
Remote
obj) Exports the remote object to make it available to receive incoming calls using an anonymous port. |
| static Remote |
exportObject
(
Remote
obj, int port) Exports the remote object to make it available to receive incoming calls, using the particular supplied port. |
| static Remote |
exportObject
(
Remote
obj, int port,
RMIClientSocketFactory
csf,
RMIServerSocketFactory
ssf) Exports the remote object to make it available to receive incoming calls, using a transport specified by the given socket factory. |
| static boolean |
unexportObject
(
Remote
obj, boolean force) Removes the remote object, obj, from the RMI runtime. |
| Methods inherited from class java.rmi.server. RemoteServer |
|---|
| getClientHost , getLog , setLog |
| Methods inherited from class java.rmi.server. RemoteObject |
|---|
| equals , getRef , hashCode , toString , toStub |
| Methods inherited from class java.lang. Object |
|---|
| finalize , getClass , notify , notifyAll , wait , wait , wait |
| Constructor Detail |
|---|
protected UnicastRemoteObject()
throws RemoteException
protected UnicastRemoteObject(int port)
throws RemoteException
protected UnicastRemoteObject(int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
throws RemoteException
| Method Detail |
|---|
public Object clone()
throws CloneNotSupportedException
public static RemoteStub exportObject(Remote obj)
throws RemoteException
public static Remote exportObject(Remote obj,
int port)
throws RemoteException
public static Remote exportObject(Remote obj,
int port,
RMIClientSocketFactory csf,
RMIServerSocketFactory ssf)
throws RemoteException
public static boolean unexportObject(Remote obj,
boolean force)
throws NoSuchObjectException