La clase Java.rmi.Naming contiene un método para vincular, desvincular o volver a vincular nombres con un objeto remoto presente en el registro remoto. Esta clase también se usa para obtener la referencia del objeto presente en registros remotos o la lista de nombres asociados con este registro.
Sintaxis: declaración de clase
public final class Naming extends Object
Analicemos algunos de los principales métodos de esta clase, que son los siguientes:
Los métodos más utilizados se describen a continuación de la siguiente manera:
- unir()
- lista()
- buscar()
- reencuadernar()
- desatar()
Método 1: enlazar()
Sintaxis:
static void bind(String name, remote object) // Bind this name with this remote object
Parámetros: Nombre del registro remoto
Excepciones:
- La excepción ReadyBoundException se produce cuando el nombre ya estaba delimitado.
- MalformedURLException ocurre cuando el formato del nombre no es una URL
- RemoteException ocurre cuando falla el contacto con el registro remoto
- AccessException ocurre cuando no se permite el acceso a esta operación
Método 2: list() Usado para obtener la lista de los nombres asociados con el registro
Sintaxis:
static string[] list(String name)
Parámetros: El nombre del registro remoto
Tipo de retorno: una array de nombres delimitada con este registro
Excepciones:
- MalformedURLException ocurre cuando el formato del nombre no es una URL
- RemoteException ocurre cuando falla el contacto con el registro remoto
Método 3: lookup() busca la referencia del objeto remoto al que está asociado este nombre
Sintaxis:
static remote lookup(String name)
Parámetros: El nombre del registro remoto
Tipo de retorno: la referencia para un objeto remoto
Excepciones:
- NotBoundException ocurre cuando el nombre no se vincula con la operación actual
- RemoteException ocurre cuando falla el contacto con el registro remoto
- AccessException ocurre cuando no se permite el acceso a esta operación
- MalformedURLException ocurre cuando el formato del nombre no es una URL
Método 4: el método rebind() vuelve a vincular este nombre con el objeto remoto asociado
Sintaxis:
static void rebind(String name, remote object)
Parámetros: Se necesitan dos parámetros, a saber, nombre y objeto.
- El nombre del registro remoto.
- El objeto remoto a asociar con el nombre
Excepciones:
- MalformedURLException ocurre cuando el formato del nombre no es una URL
- RemoteException ocurre cuando falla el contacto con el registro remoto
- AccessException ocurre cuando no se permite el acceso a esta operación
Método 5: unbind() desvincula este nombre con el objeto remoto asociado
Sintaxis:
static void unbind(String name)
Parámetros: El nombre del registro remoto
Excepciones:
- NotBoundException ocurre cuando el nombre no se vincula con la operación actual
- MalformedURLException ocurre cuando el formato del nombre no es una URL
- RemoteException ocurre cuando falla el contacto con el registro remoto
- AccessException ocurre cuando no se permite el acceso a esta operación
Ejemplo 1:
Java
// Java Program to create a registry // Server's Side // Importing java.rmi package to enable object of one JVM // to invoke methods on object in another JVM import java.rmi.*; import java.rmi.AlreadyBoundException; import java.rmi.Naming; import java.rmi.NotBoundException; import java.rmi.Remote; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.*; // Interface // creating remote interface interface demo extends Remote { public String msg(String msg) throws RemoteException; } // Class 1 // Helper Class class demoRemote extends UnicastRemoteObject implements demo { demoRemote() throws RemoteException { super(); } // @Override public String msg(String msg) throws RemoteException { // Display message only System.out.println("GeeksForGeeks"); return null; } } // Class 2 // Main class public class GFG_Server { // Main driver method public static void main(String args[]) throws RemoteException, NotBoundException, AlreadyBoundException { // Try block to check for exceptions try { // Creating a new registry by creating // an object of Registry class Registry registry = LocateRegistry.createRegistry(3000); demo obj = new demoRemote(); // binding obj to remote registry Naming.bind("rmi://localhost:3000" + "/geeksforgeeks", (Remote)obj); // Display message when program // is executed successfully System.out.println( "registry created successfully"); } // Catch block to handle the exceptions catch (Exception e) { // Getting the name of the exception using // the toString() method over exception object System.err.println(e.toString()); } } }
Producción:
registry created successfully
Implementación: programa Java para buscar el objeto (lado del cliente)
Ejemplo 2:
Java
// Java Program to look for the object // Client Side // Importing java.rmi package to enable object of one JVM // to invoke methods on object in another JVM import java.rmi.*; // Main class public class GFG_Client { // Main driver method public static void main(String args[]) { // try block to check for exceptions try { // Looking for object in remote registry demo client = (demo)Naming.lookup( "rmi://localhost:3000/obj"); // Print and display the client message System.out.println(client.msg()); } // Catch block to handle the exception catch (Exception e) { } } }
Producción:
GeeksForGeeks
Publicación traducida automáticamente
Artículo escrito por abhinavjain194 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA