--- /dev/null
+package exemples.javarmi.hello;
+import java.rmi.Naming;
+import java.rmi.RMISecurityManager;
+
+public class HelloClient {
+ public static void main(String[] args){
+ /* lance le SecurityManager */
+ System.setSecurityManager(new RMISecurityManager());
+ try {
+ String server = args[0];
+ int port = Integer.parseInt(args[1]);
+ /* cherche référence objet distant */
+ HelloInterface hello = (HelloInterface)Naming.lookup("rmi://"+server+":"+port+"/Hello1");
+ /* appel de méthode à distance */
+ System.out.println(hello.sayHello());
+ }
+ catch (Exception e) {
+ System.out.println ("Erreur client : " + e);
+ }
+ }
+}
--- /dev/null
+package exemples.javarmi.hello;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
+
+public class HelloImpl extends UnicastRemoteObject implements HelloInterface {
+ private static final long serialVersionUID = 6586708515447619453L;
+ private String message;
+
+ public HelloImpl(String s) throws RemoteException {
+ message = s;
+ }
+ public String sayHello() throws RemoteException {
+ return message;
+ }
+}
--- /dev/null
+package exemples.javarmi.hello;
+import java.rmi.Remote;
+import java.rmi.RemoteException;
+
+public interface HelloInterface extends Remote {
+ /**
+ * méthode imprimant un message prédéfini dans l'objet appelé
+ */
+ public String sayHello() throws RemoteException;
+}
--- /dev/null
+package exemples.javarmi.hello;
+import java.rmi.Naming;
+import java.rmi.RMISecurityManager;
+
+public class HelloServer {
+ public static void main (String[] args) {
+ /* lancer SecurityManager */
+ System.setSecurityManager(new RMISecurityManager());
+ try {
+ /* créer une instance de la classe Hello et l'enregistrer dans le serveur de noms */
+ Naming.rebind("Hello1", new HelloImpl("Hello world"));
+ System.out.println("Serveur prêt");
+ }
+ catch (Exception e) {
+ System.out.println("Erreur serveur : " + e);
+ }
+ }
+}
--- /dev/null
+grant {
+ permission java.net.SocketPermission "*:1024-65535", "connect, accept, resolve";
+ permission java.net.SocketPermission "*:80", "connect";
+};