Deprecated: Static Stubs. Support for statically generated stubs is deprecated. This includes the API in this class that requires the use of static stubs, as well as the runtime support for loading static stubs. Generating stubs dynamically is preferred, using one of the non-deprecated ways of exporting objects as listed below.
There are eight ways to export remote objects:
UnicastRemoteObject and calling the
UnicastRemoteObject() constructor.
UnicastRemoteObject and calling the
UnicastRemoteObject(port) constructor.
UnicastRemoteObject and calling the
UnicastRemoteObject(port, csf, ssf) constructor.
exportObject(Remote) method.
Deprecated.
exportObject(Remote, port) method.
exportObject(Remote, port, csf, ssf) method.
exportObject(Remote, port, filter) method.
exportObject(Remote, port, csf, ssf, filter) method.
The fourth technique, exportObject(Remote),
always uses statically generated stubs and is deprecated.
The other techniques all use the following approach: if the
java.rmi.server.ignoreStubClasses property is true
(case insensitive) or if a static stub cannot be found, stubs are generated
dynamically using Proxy objects. Otherwise,
static stubs are used.
The default value of the
java.rmi.server.ignoreStubClasses property is false.
Statically generated stubs are typically pregenerated from the remote object's class. A static stub is loaded and an instance of that stub class is constructed as described below.
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.
_Stub.
RemoteStub, it must
reside in a package that is exported to at least the java.rmi module, and it
must have a public constructor that has one parameter of type RemoteRef.
RemoteRef.
StubNotFoundException is thrown.
Stubs are dynamically generated by constructing an instance of
a Proxy with the following characteristics:
Proxy
class, using the class loader of the remote object's class.
java.rmi module, or it must reside in a package that is
open
to at least the java.rmi module.
RemoteObjectInvocationHandler instance constructed with a
RemoteRef.
StubNotFoundException
will be thrown.
Exported remote objects receive method invocations from the stubs
as described in the RMI specification. Each invocation's operation and
parameters are unmarshaled using a custom java..
If an ObjectInputFilter is provided and is not null when the object
is exported, it is used to filter the parameters as they are unmarshaled from the stream.
The filter is used for all invocations and all parameters regardless of
the method being invoked or the parameter values.
If no filter is provided or is null for the exported object then the
ObjectInputStream default filter, if any, is used. The default filter is
configured with ObjectInputFilter..
If the filter rejects any of the parameters, the InvalidClassException
thrown by ObjectInputStream is reported as the cause of an
UnmarshalException.
Implementation Note
Depending upon which constructor or static method is used for exporting an
object, RMISocketFactory may be used for creating sockets.
By default, server sockets created by RMISocketFactory
listen on all network interfaces. See the
RMISocketFactory class and the section
RMI Socket Factories
in the
Java RMI Specification.
| Modifier and Type | Field and Description |
|---|---|
| private RMIClientSocketFactory | |
| private int | |
| private static final long | |
| private RMIServerSocketFactory |
| Access | Constructor and Description |
|---|---|
| protected | |
| protected | UnicastRemoteObject(int
the port number on which the remote object receives calls
(if port)port is zero, an anonymous port is chosen)Creates and exports a new UnicastRemoteObject object using the particular supplied port. |
| protected | UnicastRemoteObject(int
the port number on which the remote object receives calls
(if port, RMIClientSocketFactory port is zero, an anonymous port is chosen)the client-side socket factory for making calls to the
remote object csf, RMIServerSocketFactory the server-side socket factory for receiving remote calls ssf)Creates and exports a new UnicastRemoteObject object using the particular supplied port and socket factories. |
| Modifier and Type | Method and Description |
|---|---|
| public Object | Returns: the new remote objectOverrides java. Returns a clone of the remote object that is distinct from the original. |
| public static RemoteStub | Returns: remote object stubthe remote object to be exported obj)
Deprecated
This method is deprecated because it supports only static stubs.
Exports the remote object to make it available to receive incoming calls using an anonymous port. |
| public static Remote | Returns: remote object stubthe remote object to be exported obj, int the port to export the object on port)Exports the remote object to make it available to receive incoming calls, using the particular supplied port. |
| public static Remote | Returns: remote object stubthe remote object to be exported obj, int the port to export the object on port, RMIClientSocketFactory the client-side socket factory for making calls to the
remote object csf, RMIServerSocketFactory the server-side socket factory for receiving remote calls ssf)Exports the remote object to make it available to receive incoming calls, using a transport specified by the given socket factory. |
| public static Remote | Returns: remote object stubthe remote object to be exported obj, int the port to export the object on port, ObjectInputFilter an ObjectInputFilter applied when deserializing invocation arguments;
may be filter)nullExports the remote object to make it available to receive incoming calls, using the particular supplied port and filter. |
| public static Remote | Returns: remote object stubthe remote object to be exported obj, int the port to export the object on port, RMIClientSocketFactory the client-side socket factory for making calls to the
remote object csf, RMIServerSocketFactory the server-side socket factory for receiving remote calls ssf, ObjectInputFilter an ObjectInputFilter applied when deserializing invocation arguments;
may be filter)nullExports the remote object to make it available to receive incoming calls, using a transport specified by the given socket factory and filter. |
| private static Remote | exportObject(Remote obj, UnicastServerRef sref)
References Deprecated
UnicastServerRef is deprecated or references (maybe indirectly) at least one deprecated element.
Exports the specified object using the specified server ref. |
| private void | readObject(ObjectInputStream
the in)ObjectInputStream from which data is readHides java. Re-export the remote object when it is deserialized. |
| private void | |
| public static boolean | Returns: true if operation is successful, false otherwisethe remote object to be unexported obj, boolean if true, unexports the object even if there are
pending or in-progress calls; if false, only unexports the object
if there are no pending or in-progress calls force)Removes the remote object, obj, from the RMI runtime. |
| csf | back to summary |
|---|---|
private RMIClientSocketFactory csf
| |
| port | back to summary |
|---|---|
| private int port | |
| serialVersionUID | back to summary |
|---|---|
| private static final long serialVersionUID Hides java. | |
| ssf | back to summary |
|---|---|
private RMIServerSocketFactory ssf
| |
| UnicastRemoteObject | back to summary |
|---|---|
| protected UnicastRemoteObject() throws RemoteException Creates and exports a new UnicastRemoteObject object using an anonymous port. The object is exported with a server socket
created using the
| |
| UnicastRemoteObject | back to summary |
|---|---|
| protected UnicastRemoteObject(int port) throws RemoteException Creates and exports a new UnicastRemoteObject object using the particular supplied port. The object is exported with a server socket
created using the
| |
| UnicastRemoteObject | back to summary |
|---|---|
| protected UnicastRemoteObject(int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException Creates and exports a new UnicastRemoteObject object using the particular supplied port and socket factories. Either socket factory may be
| |
| clone | back to summary |
|---|---|
| public Object clone() throws CloneNotSupportedException Overrides java. Returns a clone of the remote object that is distinct from the original.
| |
| exportObject | back to summary |
|---|---|
| public static RemoteStub exportObject(Remote obj) throws RemoteException
Deprecated This method is deprecated because it supports only static stubs.
Use Exports the remote object to make it available to receive incoming calls using an anonymous port. This method will always return a statically generated stub. The object is exported with a server socket
created using the
| |
| exportObject | back to summary |
|---|---|
| public static Remote exportObject(Remote obj, int port) throws RemoteException Exports the remote object to make it available to receive incoming calls, using the particular supplied port. The object is exported with a server socket
created using the
| |
| exportObject | back to summary |
|---|---|
| public static Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException Exports the remote object to make it available to receive incoming calls, using a transport specified by the given socket factory. Either socket factory may be
| |
| exportObject | back to summary |
|---|---|
| public static Remote exportObject(Remote obj, int port, ObjectInputFilter filter) throws RemoteException Exports the remote object to make it available to receive incoming calls, using the particular supplied port and filter. The object is exported with a server socket
created using the
| |
| exportObject | back to summary |
|---|---|
| public static Remote exportObject(Remote obj, int port, RMIClientSocketFactory csf, RMIServerSocketFactory ssf, ObjectInputFilter filter) throws RemoteException Exports the remote object to make it available to receive incoming calls, using a transport specified by the given socket factory and filter. Either socket factory may be
| |
| exportObject | back to summary |
|---|---|
| private static Remote exportObject(Remote obj, UnicastServerRef sref) throws RemoteException
References Deprecated
See corresponding docs for further information. Exports the specified object using the specified server ref. | |
| readObject | back to summary |
|---|---|
| private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException Hides java. Re-export the remote object when it is deserialized.
| |
| reexport | back to summary |
|---|---|
| private void reexport() throws RemoteException | |
| unexportObject | back to summary |
|---|---|
| public static boolean unexportObject(Remote obj, boolean force) throws NoSuchObjectException Removes the remote object, obj, from the RMI runtime. If successful, the object can no longer accept incoming RMI calls. If the force parameter is true, the object is forcibly unexported even if there are pending calls to the remote object or the remote object still has calls in progress. If the force parameter is false, the object is only unexported if there are no pending or in progress calls to the object.
| |