- All Superinterfaces:
Remote
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 ObjID
and TCP port number
(default is 1099
).
The LocateRegistry
class provides a programmatic API for
constructing 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 AccessException
, which
(because it extends RemoteException
) will be
wrapped in a ServerException
when caught by a
remote 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.
- Since:
- 1.1
- See Also:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Binds a remote reference to the specifiedname
in this registry.String[]
list()
Returns an array of the names bound in this registry.Returns the remote reference bound to the specifiedname
in this registry.void
Replaces the binding for the specifiedname
in this registry with the supplied remote reference.void
Removes the binding for the specifiedname
in this registry.
-
Field Details
-
REGISTRY_PORT
static final int REGISTRY_PORTWell known port for registry.- See Also:
-
-
Method Details
-
lookup
Returns the remote reference bound to the specifiedname
in this registry.- Parameters:
name
- the name for the remote reference to look up- Returns:
- a reference to a remote object
- Throws:
NotBoundException
- ifname
is not currently boundRemoteException
- if remote communication with the registry failed; if exception is aServerException
containing anAccessException
, then the registry denies the caller access to perform this operationAccessException
- if this registry is local and it denies the caller access to perform this operationNullPointerException
- ifname
isnull
-
bind
Binds a remote reference to the specifiedname
in this registry.- Parameters:
name
- the name to associate with the remote referenceobj
- a reference to a remote object (usually a stub)- Throws:
AlreadyBoundException
- ifname
is already boundRemoteException
- if remote communication with the registry failed; if exception is aServerException
containing anAccessException
, then the registry denies the caller access to perform this operation (if originating from a non-local host, for example)AccessException
- if this registry is local and it denies the caller access to perform this operationNullPointerException
- ifname
isnull
, or ifobj
isnull
-
unbind
Removes the binding for the specifiedname
in this registry.- Parameters:
name
- the name of the binding to remove- Throws:
NotBoundException
- ifname
is not currently boundRemoteException
- if remote communication with the registry failed; if exception is aServerException
containing anAccessException
, then the registry denies the caller access to perform this operation (if originating from a non-local host, for example)AccessException
- if this registry is local and it denies the caller access to perform this operationNullPointerException
- ifname
isnull
-
rebind
Replaces the binding for the specifiedname
in this registry with the supplied remote reference. If there is an existing binding for the specifiedname
, it is discarded.- Parameters:
name
- the name to associate with the remote referenceobj
- a reference to a remote object (usually a stub)- Throws:
RemoteException
- if remote communication with the registry failed; if exception is aServerException
containing anAccessException
, then the registry denies the caller access to perform this operation (if originating from a non-local host, for example)AccessException
- if this registry is local and it denies the caller access to perform this operationNullPointerException
- ifname
isnull
, or ifobj
isnull
-
list
Returns an array of the names bound in this registry. The array will contain a snapshot of the names bound in this registry at the time of the given invocation of this method.- Returns:
- an array of the names bound in this registry
- Throws:
RemoteException
- if remote communication with the registry failed; if exception is aServerException
containing anAccessException
, then the registry denies the caller access to perform this operationAccessException
- if this registry is local and it denies the caller access to perform this operation
-