Egyszerű Java-RMI példa

1.) Definiáljuk az RObject interfészeket, mindkettő implementálja a Remote interfészt

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

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

import java.rmi.Naming;

import org.ait.RObject;
import org.ait.RObjectImpl;


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();
            ;
        }
    }
}
 
tanszek/oktatas/informacios_rendszerek_integralasa/java_rmi.txt · Last modified: 2015/03/03 12:37 by admin
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki