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

LocateRegistry

public final class LocateRegistry extends Object
LocateRegistry is used to obtain a reference to a bootstrap remote object registry on a particular host (including the local host), or to create a remote object registry that accepts calls on a specific port.

Note that a getRegistry call does not actually make a connection to the remote host. It simply creates a local reference to the remote registry and will succeed even if no registry is running on the remote host. Therefore, a subsequent method invocation to a remote registry returned as a result of this method may fail.

version
1.33, 12/19/03
author
Ann Wollrath
author
Peter Jones
since
JDK1.1
see
java.rmi.registry.Registry

Fields Summary
Constructors Summary
private LocateRegistry()
Private constructor to disable public construction.

Methods Summary
public static java.rmi.registry.RegistrycreateRegistry(int port)
Creates and exports a Registry instance on the local host that accepts requests on the specified port.

The Registry instance is exported as if the static {@link UnicastRemoteObject.exportObject(Remote,int) UnicastRemoteObject.exportObject} method is invoked, passing the Registry instance and the specified port as arguments, except that the Registry instance is exported with a well-known object identifier, an {@link ObjID} instance constructed with the value {@link ObjID#REGISTRY_ID}.

param
port the port on which the registry accepts requests
return
the registry
exception
RemoteException if the registry could not be exported
since
JDK1.1

	return new RegistryImpl(port);
    
public static java.rmi.registry.RegistrycreateRegistry(int port, java.rmi.server.RMIClientSocketFactory csf, java.rmi.server.RMIServerSocketFactory ssf)
Creates and exports a Registry instance on the local host that uses custom socket factories for communication with that instance. The registry that is created listens for incoming requests on the given port using a ServerSocket created from the supplied RMIServerSocketFactory.

The Registry instance is exported as if the static {@link UnicastRemoteObject.exportObject(Remote,int,RMIClientSocketFactory,RMIServerSocketFactory) UnicastRemoteObject.exportObject} method is invoked, passing the Registry instance, the specified port, the specified RMIClientSocketFactory, and the specified RMIServerSocketFactory as arguments, except that the Registry instance is exported with a well-known object identifier, an {@link ObjID} instance constructed with the value {@link ObjID#REGISTRY_ID}.

param
port port on which the registry accepts requests
param
csf client-side Socket factory used to make connections to the registry
param
ssf server-side ServerSocket factory used to accept connections to the registry
return
the registry
exception
RemoteException if the registry could not be exported
since
1.2

	return new RegistryImpl(port, csf, ssf);
    
public static java.rmi.registry.RegistrygetRegistry()
Returns a reference to the the remote object Registry for the local host on the default registry port of 1099.

return
reference (a stub) to the remote object registry
exception
RemoteException if the reference could not be created
since
JDK1.1

	return getRegistry(null, Registry.REGISTRY_PORT);
    
public static java.rmi.registry.RegistrygetRegistry(int port)
Returns a reference to the the remote object Registry for the local host on the specified port.

param
port port on which the registry accepts requests
return
reference (a stub) to the remote object registry
exception
RemoteException if the reference could not be created
since
JDK1.1

	return getRegistry(null, port);
    
public static java.rmi.registry.RegistrygetRegistry(java.lang.String host)
Returns a reference to the remote object Registry on the specified host on the default registry port of 1099. If host is null, the local host is used.

param
host host for the remote registry
return
reference (a stub) to the remote object registry
exception
RemoteException if the reference could not be created
since
JDK1.1

	return getRegistry(host, Registry.REGISTRY_PORT);
    
public static java.rmi.registry.RegistrygetRegistry(java.lang.String host, int port)
Returns a reference to the remote object Registry on the specified host and port. If host is null, the local host is used.

param
host host for the remote registry
param
port port on which the registry accepts requests
return
reference (a stub) to the remote object registry
exception
RemoteException if the reference could not be created
since
JDK1.1

	return getRegistry(host, port, null);
    
public static java.rmi.registry.RegistrygetRegistry(java.lang.String host, int port, java.rmi.server.RMIClientSocketFactory csf)
Returns a locally created remote reference to the remote object Registry on the specified host and port. Communication with this remote registry will use the supplied RMIClientSocketFactory csf to create Socket connections to the registry on the remote host and port.

param
host host for the remote registry
param
port port on which the registry accepts requests
param
csf client-side Socket factory used to make connections to the registry. If csf is null, then the default client-side Socket factory will be used in the registry stub.
return
reference (a stub) to the remote registry
exception
RemoteException if the reference could not be created
since
1.2

	Registry registry = null;

	if (port <= 0)
	    port = Registry.REGISTRY_PORT;

	if (host == null || host.length() == 0) {
	    // If host is blank (as returned by "file:" URL in 1.0.2 used in
	    // java.rmi.Naming), try to convert to real local host name so
	    // that the RegistryImpl's checkAccess will not fail.
	    try {
		host = java.net.InetAddress.getLocalHost().getHostAddress();
	    } catch (Exception e) {
		// If that failed, at least try "" (localhost) anyway...
		host = "";
	    }
	}

	/*
	 * Create a proxy for the registry with the given host, port, and
	 * client socket factory.  If the supplied client socket factory is
	 * null, then the ref type is a UnicastRef, otherwise the ref type
	 * is a UnicastRef2.  If the property
	 * java.rmi.server.ignoreStubClasses is true, then the proxy
	 * returned is an instance of a dynamic proxy class that implements
	 * the Registry interface; otherwise the proxy returned is an
	 * instance of the pregenerated stub class for RegistryImpl.
	 **/
	LiveRef liveRef =
	    new LiveRef(new ObjID(ObjID.REGISTRY_ID),
			new TCPEndpoint(host, port, csf, null),
			false);
	RemoteRef ref =
	    (csf == null) ? new UnicastRef(liveRef) : new UnicastRef2(liveRef);

	return (Registry) Util.createProxy(RegistryImpl.class, ref, false);