Knoppia

Wiki de Informática y otras historias

Herramientas de usuario

Herramientas del sitio


dad:rmi

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
dad:rmi [2023/11/30 10:11] – [Implementación Cliente] thejuanvisudad:rmi [2024/01/06 20:35] (actual) – [Unable to make public abstract boolean] thejuanvisu
Línea 94: Línea 94:
  
 ==== Implementación Servidor ==== ==== Implementación Servidor ====
 +
 +Aquí implementaremos las funciones de la interfaz del servidor. Se debe heredar de UnicastRemoteObject con un Extends e indicar que se va a implementar la interface anterior con Implements:
 +
 <code java ImplementacionInterfaceServidor.jar> <code java ImplementacionInterfaceServidor.jar>
  
-public class ImplementacionInterfaceServidor extends UnicastRemoteObject implements Calculator{+public class ImplementacionInterfaceServidor extends UnicastRemoteObject implements InterfazServidor{
   private static final long serialVersionUID = 1L;   private static final long serialVersionUID = 1L;
      
Línea 124: Línea 127:
  
 ==== Implementación servidor ==== ==== Implementación servidor ====
 +
 <code java Server.jar> <code java Server.jar>
  
Línea 129: Línea 133:
   public server(){   public server(){
     try{     try{
-    +       
 +      //creamos el servicio en el puerto 1099
       LocateRegistry.createRegistry(1099);       LocateRegistry.createRegistry(1099);
 +      //creamos un nuevo objeto con la funcionalidad
       InterfazServidor is = new ImplementacionInterfaceServidor();       InterfazServidor is = new ImplementacionInterfaceServidor();
-      Naming.rebind("rmi://localhost:109/CalculatorService", is);+      //Vinculamos el objeto a un nombre de servicio poniendo la URL de este y el objeto 
 +      //Ejemplo de URL("RMI://localhost:1099/Nombre_del_Servicio"
 +      Naming.rebind("RMI://localhost:1099/CalculatorService", is);//este sería el Stub
          
     }catch (Exception e){     }catch (Exception e){
Línea 140: Línea 148:
      
   public static void main(String args[]){   public static void main(String args[]){
-    new CalculatorServer();+    new Server();
   }   }
      
Línea 153: Línea 161:
   public static void main(String[] args){   public static void main(String[] args){
     try{     try{
-      InterfazServidor is = (InterfazServidor)Naming.lookup("RMI://localhost:1099/CalculatorService");+      //Con Naminglookup(URL del RMI) el cliente busca el servicio 
 +      //Formato de la URL: RMI://localhost:puerto/nombre_del_servicio 
 +      InterfazServidor is = (InterfazServidor)Naming.lookup("RMI://localhost:1099/CalculatorService");//esto es un Stub
              
       System.out.println(is.sumar(3,4));       System.out.println(is.sumar(3,4));
Línea 169: Línea 179:
 </code> </code>
  
 +===== Soluciones a Errores comunes =====
 +==== Unable to make public abstract boolean ====
 +En el archivo module-info.java debemos revisar que se esté exportando el paquete
 +<code java module-info.java>
 +module nombre_proyecto {
 +    exports nombre_paquete;
 +}
 +
 +</code>
  
dad/rmi.1701339080.txt.gz · Última modificación: 2023/11/30 10:11 por thejuanvisu