PB RMI Naming HELP

co2_gaz Messages postés 29 Date d'inscription samedi 21 octobre 2006 Statut Membre Dernière intervention 14 septembre 2009 - 20 oct. 2007 à 19:21
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 - 29 oct. 2007 à 15:34
Salut
j'ai passé des heures pas de solution.

* dans la fonction si dessous de mon client si je supprime soit le Naming.lookup ou le Naming.rebind tout marche bien, mais si je les garde les deux il ya que le premier qui fonctionne et le 2émme lance une exception

java.rmi.ConnectIOException: error during JRMP connection establishment; nested exception is:
    java.net.SocketTimeoutException: Read timed out
    at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)....

Merci d'avance.

    public void connect(final String address, final int port,final String nickname) throws RemoteException {
        
        // Initialisation des variables privees.
       adresseClient = ChatConstants.CHAT;
        adresseServeur = address;
        portServeur = port;
        utilisateur = nickname;
        
        
        //creation du registre
        if(!adresseClient.equals(adresseServeur)){
            try{
                System.out.println("new reg");
                LocateRegistry.createRegistry(port);
            }
            catch(RemoteException re){
                System.out.println("pb reg");
            }
        }
        
        
        //Initialisation de l'adresse du client.
        URL = ChatConstants.CHAT + utilisateur;
        
        try {
             Naming.rebind(this.getURL() , this);
            
            System.out.println(this.getNickname()+" userName in "+ this.getURL());
            
        } catch (MalformedURLException e1) {
            e1.printStackTrace();
        }
        
      
        
        // Recupere une reference pour le serveur de chat associe a cette adresse.
        try {
            chatServer = (RemoteChatServer) Naming.lookup("rmi://" + adresseServeur+ "/"                            +ChatConstants.CHAT);
            System.out.println("server OK");
        } catch (MalformedURLException e1) {
            e1.printStackTrace();
        } catch (NotBoundException e1) {
            e1.printStackTrace();
        }
    

        //Enregistrer le client distant au serveur de chat.
         if(chatServer != null){
            chatServer.connect(URL);
            System.out.println("client saved");
        }

//        try {
//            for(String s:Naming.list(adresseServeur+ "/" +ChatConstants.CHAT)){
//                System.out.println(chatServer.getUsers()+ " --- "+s);
//            }
//        } catch (MalformedURLException e) {
//            // TODO Auto-generated catch block
//            e.printStackTrace();
//        }
        
        System.out.println("ChatClient method connect called.");
    }

1 réponse

indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
29 oct. 2007 à 15:34
Salut
Côté client, fais plutôt un LocateRegistry.getRegistry(adresseIP, port). Cela va te retourner un Registry où là tu pourras faire tes bind et lookup sur le serveur sans problèmes.

Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
Rejoignez-nous