A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
Előző változat mindkét oldalon Előző változat Következő változat | Előző változat | ||
tanszek:oktatas:informacios_rendszerek_integralasa:java_rmi [2023/05/04 21:21] knehez |
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 ===== | ||
- | Használjuk a java 11-el kompatibilis módot. | + | Telepítsük a gradle-t innen: https://gradle.org/releases/ |
+ | A //bin// könyvtárat adjuk hozzá a //PATH//-hoz. | ||
- | 1.) Definiáljuk az RObject interfészeket, mindkettő implementálja a Remote interfészt | + | 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> | <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 | ||
+ | |||
+ | <code java> | ||
package org.ait; | package org.ait; | ||
import java.rmi.*; | import java.rmi.*; | ||
Sor 20: | Sor 40: | ||
2.) Implementáljuk a távoli objektumok kódját | 2.) Implementáljuk a távoli objektumok kódját | ||
- | <code> | + | <code java> |
package org.ait; | package org.ait; | ||
import java.rmi.RemoteException; | import java.rmi.RemoteException; | ||
Sor 48: | 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 | ||
- | <code> | + | <code java> |
package org.ait; | package org.ait; | ||
Sor 68: | Sor 88: | ||
} | } | ||
</code> | </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> | ||