Registry
is a remote interface to a simple remote object registry that provides methods for storing and retrieving remote object references bound with arbitrary string names. The
bind
,
unbind
, and
rebind
methods are used to alter the name bindings in the registry, and the
lookup
and
list
methods are used to query the current name bindings.
In its typical usage, a Registry
enables RMI client bootstrapping: it provides a simple means for a client to obtain an initial reference to a remote object. Therefore, a registry's remote object implementation is typically exported with a well-known address, such as with a well-known {@link java.rmi.server.ObjID#REGISTRY_ID ObjID} and TCP port number(default is {@link #REGISTRY_PORT 1099}).
The {@link LocateRegistry} class provides a programmatic API forconstructing a bootstrap reference to a Registry
at a remote address (see the static getRegistry
methods) and for creating and exporting a Registry
in the current VM on a particular local address (see the static createRegistry
methods).
A Registry
implementation may choose to restrict access to some or all of its methods (for example, methods that mutate the registry's bindings may be restricted to calls originating from the local host). If a Registry
method chooses to deny access for a given invocation, its implementation may throw {@link java.rmi.AccessException}, which (because it extends {@link java.rmi.RemoteException}) will be wrapped in a {@link java.rmi.ServerException} when caught by aremote client.
The names used for bindings in a Registry
are pure strings, not parsed. A service which stores its remote reference in a Registry
may wish to use a package name as a prefix in the name binding to reduce the likelihood of name collisions in the registry.
@author Ann Wollrath
@author Peter Jones
@since JDK1.1
@see LocateRegistry