FileDocCategorySizeDatePackage
Registry.javaAPI DocJava SE 5 API7381Fri Aug 26 14:57:12 BST 2005java.rmi.registry

Registry

public interface Registry implements 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 {@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 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 {@link java.rmi.AccessException}, which (because it extends {@link java.rmi.RemoteException}) will be wrapped in a {@link java.rmi.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.

author
Ann Wollrath
author
Peter Jones
version
1.18, 03/12/19
since
JDK1.1
see
LocateRegistry

Fields Summary
public static final int
REGISTRY_PORT
Well known port for registry.
Constructors Summary
Methods Summary
public voidbind(java.lang.String name, java.rmi.Remote obj)
Binds a remote reference to the specified name in this registry.

param
name the name to associate with the remote reference
param
obj a reference to a remote object (usually a stub)
throws
AlreadyBoundException if name is already bound
throws
RemoteException if remote communication with the registry failed; if exception is a ServerException containing an AccessException, then the registry denies the caller access to perform this operation (if originating from a non-local host, for example)
throws
AccessException if this registry is local and it denies the caller access to perform this operation
throws
NullPointerException if name is null, or if obj is null

public java.lang.String[]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.

return
an array of the names bound in this registry
throws
RemoteException if remote communication with the registry failed; if exception is a ServerException containing an AccessException, then the registry denies the caller access to perform this operation
throws
AccessException if this registry is local and it denies the caller access to perform this operation

public java.rmi.Remotelookup(java.lang.String name)
Returns the remote reference bound to the specified name in this registry.

param
name the name for the remote reference to look up
return
a reference to a remote object
throws
NotBoundException if name is not currently bound
throws
RemoteException if remote communication with the registry failed; if exception is a ServerException containing an AccessException, then the registry denies the caller access to perform this operation
throws
AccessException if this registry is local and it denies the caller access to perform this operation
throws
NullPointerException if name is null

public voidrebind(java.lang.String name, java.rmi.Remote obj)
Replaces the binding for the specified name in this registry with the supplied remote reference. If there is an existing binding for the specified name, it is discarded.

param
name the name to associate with the remote reference
param
obj a reference to a remote object (usually a stub)
throws
RemoteException if remote communication with the registry failed; if exception is a ServerException containing an AccessException, then the registry denies the caller access to perform this operation (if originating from a non-local host, for example)
throws
AccessException if this registry is local and it denies the caller access to perform this operation
throws
NullPointerException if name is null, or if obj is null

public voidunbind(java.lang.String name)
Removes the binding for the specified name in this registry.

param
name the name of the binding to remove
throws
NotBoundException if name is not currently bound
throws
RemoteException if remote communication with the registry failed; if exception is a ServerException containing an AccessException, then the registry denies the caller access to perform this operation (if originating from a non-local host, for example)
throws
AccessException if this registry is local and it denies the caller access to perform this operation
throws
NullPointerException if name is null