Bonjour tout le monde,

j'ai créé une application en java RMI, je lance le serveur sans problème, j'execute le client est tout marche bien mais, maintenant je veux que le registry (l'annuaire qui permet au serveur de faire son bind) soit sur une autre machine (ou au moins sur un projet différent pour tester), alors j'ai créé un projet avec une classe contenant le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class RegistryServeur {
 
	public static void main(String[] args) {
		try {
			java.rmi.registry.LocateRegistry.createRegistry(1099);
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}
}
lorsque j'execute cette classe, le registry est créé, car si j'essaie de faire un "java.rmi.registry.LocateRegistry.createRegistry(1099);" dans une autre classe on me dit que le port 1099 est occupé. Mais dès que j'execute le serveur en faisant un bind ou rebind de cette façon :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
MonRMIimp MonRemoteObj=new MonRMIimp();
 java.rmi.Naming.rebind("rmi://localhost/MonRMIinterface", MonRemoteObj);
on me donne l'erreur suivante:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: 
	java.net.ConnectException: Connection refused: connect
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
	at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
	at sun.rmi.server.UnicastRef.newCall(Unknown Source)
	at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
	at java.rmi.Naming.rebind(Unknown Source)

après cela j'ai remplacé la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
java.rmi.registry.LocateRegistry.createRegistry(1099);
par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Runtime.getRuntime().exec("rmiregistry 1099");
et cette fois ci, l'erreur est :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
	java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
	java.lang.ClassNotFoundException: ICI MON INTERFACE ...
Avez vous une idée sur la solution ? si oui, ce serait vraiment sympa de me la communiquer.
Merci d'avance