Bonjour,
Je suis entrain d'apprendre à utiliser RMI, je souhaiterais simplement mettre en place un mécanisme de rappel du client lorsque le serveur finit un calcul nécessitant des ressources.
Mais avant cela j'ai un premier soucis et pas des moindres : le lancement du serveur...
J'ai cherché sur le Web mais je n'ai pas trouvé une réponse claire sur le pourquoi du comment... Voici l'erreur que j'obtiens au lancement :
Et voici le code qui va avec :java.rmi.ConnectException: Connection refused to host: 127.0.1.1; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:340)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at echo.Echo.main(Echo.java:26)
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:310)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:176)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:163)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:384)
at java.net.Socket.connect(Socket.java:546)
at java.net.Socket.connect(Socket.java:495)
at java.net.Socket.<init>(Socket.java:392)
at java.net.Socket.<init>(Socket.java:206)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:146)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
... 5 more
L'interface de l'objet précédent :
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 package echo; import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.UnicastRemoteObject; import echo.interfaces.EchoRemote; public class Echo extends UnicastRemoteObject implements EchoRemote { private static final long serialVersionUID = -570053917036856015L; public Echo () throws RemoteException { super (); } public String echo (String msg) throws RemoteException { return "[" + msg + "]"; } public static void main (String[] args) { try { Registry reg = LocateRegistry.getRegistry (1099); Echo server = new Echo (); reg.rebind ("server", server); System.out.println ("Ready"); } catch (RemoteException e) { e.printStackTrace (); } } }
Pour information, je suis sous linux dans le cas où une configuration système serait nécessaire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 package echo.interfaces; import java.rmi.Remote; public interface EchoRemote extends Remote { String echo (String msg) throws RemoteException; }
Merci à vous.
--
Sperca
Partager