IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

[RMI sur SSL] Un rebind() qui "plante"


Sujet :

API standards et tierces Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Avatar de Le Barde
    Homme Profil pro
    Chanteur
    Inscrit en
    Juillet 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chanteur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 343
    Par défaut [RMI sur SSL] Un rebind() qui "plante"
    Salut à tous,
    Je suis en train de coder une application client/serveur en RMI sur une couche SSL. Je suis en java 1.4.2.

    Voici mon code de base :
    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
    public class Hello extends UnicastRemoteObject implements HelloInterface
    {
        public Hello(RMIClientSocketFactory csf, RMIServerSocketFactory ssf) throws RemoteException
        {
            //super();
            super(1099, csf, ssf);
     
            System.out.println("Initialisation de Hello OK.");
        }
     
        public int sayHello()
        {
            try {
            System.out.println("Hello, World !");
            return 0;
            }
            catch (Exception e)
            {
                e.printStackTrace();
                return 1;
            }
        }
     
        public static void main(String[] args)
        {
            try
            {
                RMIClientSocketFactory csf = new RMISSLClientSocketFactory();
                RMIServerSocketFactory ssf = new RMISSLServerSocketFactory();
                HelloInterface myHello = new Hello(csf, ssf);
     
                Registry reg = LocateRegistry.getRegistry("lat203", 1099, csf);
                System.out.println("L'objet SERA publie.");
                reg.rebind("HelloInterface", myHello); // Ligne 56.
                System.out.println("L'objet est publie.");
            }
            catch (RemoteException e)
            {
                e.printStackTrace();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
     
        }
    }
    J'ai réutilisé les RMISSLServerSocketFactory et RMISSLClientSocketFactory proposés ici.

    La version sans SSL fonctionne... Mais lorsque j'essaie de lancer cette application-ci (en debug par exemple), le programme se met en running à la ligne 56 de cette classe hello. Voici la pile au moment où je ne peux plus rien faire :
    Thread [main] (Stepping)
    UnicastRef2(UnicastRef).newCall(RemoteObject, Operation[], int, long) line: 313
    RegistryImpl_Stub.rebind(String, Remote) line: not available
    Hello.main(String[]) line: 56
    Thread [Thread-1] (Running)
    Pas moyen de terminer le thread et laisser le thread-1 en vie, ce qui est à mon sens le fonctionnement normal.

    Des idées ?
    Merci d'avance.

  2. #2
    Membre éclairé
    Avatar de Le Barde
    Homme Profil pro
    Chanteur
    Inscrit en
    Juillet 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chanteur

    Informations forums :
    Inscription : Juillet 2007
    Messages : 343
    Par défaut
    Je me réponds à moi-même :
    C'était la ligne Registry reg = LocateRegistry.getRegistry("lat203", 1099, csf); qui posait du souci. Au lieu de cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Registry reg = LocateRegistry.createRegistry(1099, csf, ssf);
    J'ai posté sur le forum de Sun pour ceux que ça intéresserait.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RMI sur couche SSL] -> handshake_failure !
    Par Le Barde dans le forum Sécurité
    Réponses: 0
    Dernier message: 22/10/2008, 11h52
  2. Faire un where sur un champs date qui peut etre vide
    Par blueman dans le forum Oracle
    Réponses: 12
    Dernier message: 03/01/2006, 13h46
  3. supprimer une table qui a des quotes dans son nom
    Par kleenex dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 16h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo