Bonjour,
Je suis un tuto sur RMI en développant sur linux.
Je crois que le code est correcte car je n'ai pas d'erreur de compil.
Le probleme doit se situer au niveau des differentes console et VM utilisee.
Pour memoire le code compiler avec javac -d . nom des class
et completer avec rmic -d . hello.HelloImpl
Je suis sous:
java version "1.6.0_22"
OpenJDK Runtime Environment (IcedTea6 1.10.2) (suse-4.3.1-i386)
OpenJDK Client VM (build 20.0-b11, mixed mode)
Donc en principe je n'ai pas de HelloImpl_Skel.class
Juste ici dessous les class compilees:Comme dit plus haut a la compil j'ai eu un nouveau dossier nomme hello avec le contenu suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 L'interface Hello package hello; import java.rmi.Remote; import java.rmi.RemoteException; public interface Hello extends Remote{ void sayHello(String param) throws RemoteException; } // Fin interface Hello La class avec implementation package hello; import java.rmi.server.UnicastRemoteObject; import java.rmi.RemoteException; public class HelloImpl extends UnicastRemoteObject implements Hello{ public HelloImpl() throws RemoteException{ super(); } public void sayHello(String param) throws RemoteException{ System.out.println("Hello" + param + "!"); } } // Fin class HelloImpl // L'application client package hello; import java.rmi.Naming; import java.rmi.RemoteException; import java.rmi.NotBoundException; import java.net.MalformedURLException; class HelloClient{ public static void main(String[] args){ try { Hello helloObject = (Hello)Naming.lookup("//"+ args[0] + "/Hello"); helloObject.sayHello("vio"); }catch(RemoteException e){ System.out.println("HelloClient exception" + e.getMessage()); }catch(NotBoundException e){ System.out.println("HelloClient : objectNotBound" + e.getMessage()); }catch(MalformedURLException e){ System.out.println("HelloClient : URL malformee" + e.getMessage()); } } // Fin main } // Fin class HelloClient // L'application serveur package hello; import java.rmi.Naming; import java.net.MalformedURLException; import java.rmi.RemoteException; class HelloServer{ public static void main(String [] args){ try{ HelloImpl helloObj = new HelloImpl(); Naming.rebind("Hello", helloObj ); } catch (RemoteException e){ System.out.println("HelloServer exception " + e.getMessage()); } catch (MalformedURLException e){ System.out.println("HelloServer : url malformee " +e.getMessage());} } // Fin main() } // Fin class HelloServer
Hello.class HelloClient.class HelloImpl.class HelloImpl_Stub.class HelloServer.class
Comme dit je travaille en console dans le dossier qui contient le dossier hello
Je lance le server de nom avec un num de port:
rmiregistry 1099
Dans une autre console je lance le server:
java hello.HelloServer
Les deux console sont en attente et aucun message d'erreur.
Je lance alors le client dans une troisieme console:
java hello.HelloClient m1:1099
Et maintenant je recois cette erreur.
HelloClient exceptionConnection refused to host: m1; nested exception is:
java.net.ConnectException: Connection refused
J'ai du mal a voir ce que je dois faire pour corriger cette histoire.
Est-ce que quelqu'un peut me dire que faire pour en sortir?
D'avance merci
marc_3
Partager