Felhasználói eszközök

Eszközök a webhelyen


tanszek:oktatas:informacios_rendszerek_integralasa:java_rmi

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Következő változat
Előző változat
tanszek:oktatas:informacios_rendszerek_integralasa:java_rmi [2015/03/03 11:37]
127.0.0.1 külső szerkesztés
tanszek:oktatas:informacios_rendszerek_integralasa:java_rmi [2023/05/05 15:56] (aktuális)
knehez
Sor 1: Sor 1:
 ===== Egyszerű Java-RMI példa ===== ===== Egyszerű Java-RMI példa =====
 +
 +Telepítsük a gradle-t innen: https://​gradle.org/​releases/​
 +A //bin// könyvtárat adjuk hozzá a //​PATH//​-hoz.
 +
 +A teljes forráskód elérhető itt:
 +<​code>​
 +git clone https://​github.com/​knehez/​isi.git
 +cd java_rmi
 +</​code>​
 +
 +Nyissunk két terminált, az egyikben:
 +
 +<​code>​
 +gradle runRegisterService
 +</​code>​
 +
 +A másikban:
 +<​code>​
 +gradle run
 +</​code>​
 +
 +A program részletesen:​
  
 1.) Definiáljuk az RObject interfészeket,​ mindkettő implementálja a Remote interfészt 1.) Definiáljuk az RObject interfészeket,​ mindkettő implementálja a Remote interfészt
  
-  ​import java.rmi.*;​ +<code java> 
-   +package org.ait; 
-  public interface RObject extends Remote { +import java.rmi.*;​ 
-    // egyszerű paraméterátadás + 
-    void primitiveArg(int num) throws RemoteException;​ +public interface RObject extends Remote { 
-     +  // egyszerű paraméterátadás 
-    // érték szerinti paraméterátadás +  void primitiveArg(int num) throws RemoteException;​
-    void argumentByValue(Integer num) throws RemoteException;​ +
-  }+
   ​   ​
 +  // érték szerinti paraméterátadás
 +  void argumentByValue(Integer num) throws RemoteException;​
 +}
 +</​code>  ​
  
 2.) Implementáljuk a távoli objektumok kódját 2.) Implementáljuk a távoli objektumok kódját
  
-  ​import java.rmi.RemoteException;​ +<code java> 
-  import java.rmi.server.UnicastRemoteObject;​ +package org.ait; 
-   +import java.rmi.RemoteException;​ 
-  public class RObjectImpl extends UnicastRemoteObject implements RObject { +import java.rmi.server.UnicastRemoteObject;​ 
-        private static final long serialVersionUID = 6350331764929058681L;​ + 
-        public RObjectImpl() throws RemoteException { +public class RObjectImpl extends UnicastRemoteObject implements RObject { 
-        }  +      private static final long serialVersionUID = 6350331764929058681L;​ 
-     +      public RObjectImpl() throws RemoteException { 
-        @Override +      
-        public void primitiveArg(int num) throws RemoteException { +
-           ​System.out.println(num);​ +
-        ​}+
   ​   ​
-        @Override +      @Override 
-        public void argumentByValue(Integer num) throws RemoteException { +      public void primitiveArg(int num) throws RemoteException { 
-           ​System.out.println(num);​ +         ​System.out.println(num);​ 
-        +      } 
-  }+ 
 +      ​@Override 
 +      public void argumentByValue(Integer num) throws RemoteException { 
 +         ​System.out.println(num);​ 
 +      
 +} 
 +</​code>​
  
 3.) Indítsuk el az RMI registry-t. Ez egy Java JDK komponens, elindítani a létrehozott projekt /bin könyvtárából kell. 3.) Indítsuk el az RMI registry-t. Ez egy Java JDK komponens, elindítani a létrehozott projekt /bin könyvtárából kell.
Sor 41: Sor 68:
 4.) Hozzuk létre egy példányát a távoli objektumnak és kössük hozzá a registry-hez 4.) Hozzuk létre egy példányát a távoli objektumnak és kössük hozzá a registry-hez
  
-  import ​java.rmi.Naming;​ +<​code ​java> 
-   +package ​org.ait; 
-  import ​org.ait.RObject+ 
-  import ​org.ait.RObjectImpl+import ​java.rmi.Naming
-   + 
-  ​ +public class RegisterService {
-  public class RegisterService {+
  /**  /**
  * @param args  * @param args
Sor 53: Sor 79:
  public static void main(String[] args) {  public static void main(String[] args) {
  try {  try {
-   ​RObject robj = new RObjectImpl();​ + RObject robj = new RObjectImpl();​ 
-   ​Naming.rebind("​rmi://​localhost:​1099/​RObjectServer",​ robj); + Naming.rebind("​rmi://​localhost:​1099/​RObjectServer",​ robj); 
-                          System.out.println("​Registered..."​);​ + System.out.println("​Registered..."​);​ 
- } catch (Exception e) { + } catch (Exception e) { 
-   ​e.printStackTrace();​ + e.printStackTrace();​ 
- }+ }
  }  }
-  ​}+} 
 +</​code>​ 
 + 
 +Indítsuk el a RegisterService-t,​ ha fut a rmiregistry,​ csak akkor fog tudni regisztrálni.
  
 5.) Használjuk a távoli objektumot 5.) Használjuk a távoli objektumot
  
-  ​import java.rmi.Naming;​ +Indítsuk el az alábbi kódot. 
-   + 
-  public class Client { +<code java> 
-      public static void main(String[] args) { +package org.ait; 
-          try { + 
-              // Távoli objektum lekérése a registry-ből +import java.rmi.Naming;​ 
-              RObject robj = (RObject) Naming + 
-                      ​.lookup("​rmi://​localhost:​1099/​RObjectServer"​);​ +public class Client { 
-   + public static void main(String[] args) { 
-              // Egyszerű argumentum + try { 
-              robj.primitiveArg(2012);​ + // Távoli objektum lekérése a registry-ből 
-   + RObject robj = (RObject) Naming.lookup("​rmi://​localhost:​1099/​RObjectServer"​);​ 
-              // Serilaizált argumentum + 
-              robj.argumentByValue(new Integer(2012));​ + // Egyszerű argumentum 
-   + robj.primitiveArg(2012);​ 
-          } catch (Exception e) { + 
-              e.printStackTrace();​ + // Serilaizált argumentum 
-              + robj.argumentByValue(new Integer(2012));​ 
-          + 
-      + } catch (Exception e) { 
-  }+ e.printStackTrace();​ 
 +
 +
 +
 +} 
 +</​code>​
  
  
tanszek/oktatas/informacios_rendszerek_integralasa/java_rmi.1425382620.txt.gz · Utolsó módosítás: 2015/03/03 11:37 szerkesztette: 127.0.0.1