Ez a dokumentum egy előző változata!
Használjuk a java 11-el kompatibilis módot.
1.) Definiáljuk az RObject interfészeket, mindkettő implementálja a Remote interfészt
package org.ait; import java.rmi.*; public interface RObject extends Remote { // egyszerű paraméterátadás void primitiveArg(int num) throws RemoteException; // érték szerinti paraméterátadás void argumentByValue(Integer num) throws RemoteException; }
2.) Implementáljuk a távoli objektumok kódját
package org.ait; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; 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 public void argumentByValue(Integer num) throws RemoteException { System.out.println(num); } }
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.
> rmiregistry.exe
4.) Hozzuk létre egy példányát a távoli objektumnak és kössük hozzá a registry-hez
package org.ait;
import java.rmi.Naming;
public class RegisterService {
/**
* @param args
*/
public static void main(String[] args) {
try {
RObject robj = new RObjectImpl();
Naming.rebind("rmi://localhost:1099/RObjectServer", robj);
System.out.println("Registered...");
} catch (Exception e) {
e.printStackTrace();
}
}
}
5.) Használjuk a távoli objektumot
import java.rmi.Naming;
public class Client {
public static void main(String[] args) {
try {
// Távoli objektum lekérése a registry-ből
RObject robj = (RObject) Naming
.lookup("rmi://localhost:1099/RObjectServer");
// Egyszerű argumentum
robj.primitiveArg(2012);
// Serilaizált argumentum
robj.argumentByValue(new Integer(2012));
} catch (Exception e) {
e.printStackTrace();
;
}
}
}