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

Java EE Discussion :

Initial Context > Comment savoir ? [JNDI]


Sujet :

Java EE

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Points : 100
    Points
    100
    Par défaut Initial Context > Comment savoir ?
    Voilà, mon problème s'est résolu mais je ne sais pas très bien comment alors j'aimerais vous poser la question :

    J'avais un code client pour un EJB (EJB sur Weblogic 8.1) :
    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
     
    package sb;
     
    import java.util.Properties;
    import javax.naming.InitialContext;
    import javax.naming.Context;
    import javax.transaction.UserTransaction;
    import javax.rmi.PortableRemoteObject;
     
    public class HelloWorldClient {
     
        public static void main(String args[]) {
     
        // Récupération du contexte initial
        Context initialContext = null;
        try {
    			initialContext = new InitialContext();
        } catch (Exception e) {
          System.err.println("Impossible d'accéder au contexte JNDI : " + e);
          System.exit(2);
        }
     
        // Récupération d'une référence à l'interface locale
        HelloWorldHome home = null;
        try {
          home = (HelloWorldHome)PortableRemoteObject.narrow(initialContext.lookup("myHelloWorld"), HelloWorldHome.class);
        } catch (Exception e) {
          System.err.println( "Impossible de trouver HelloWorldHome : " + e);
    			e.printStackTrace();
          System.exit(2);
        }
     
        // Création d'un objet de même type que l'interafce distante
        // et appel de la fonction sayHello()
        HelloWorld myHelloWorld = null;
        try {
          myHelloWorld = home.create();
          System.out.println(myHelloWorld.sayHelloWorld());
        } catch (Exception e) {
          System.err.println("Impossible de créer le bean : " + e);
          System.exit(2);
        }
     
        }
    }
    Et j'avais un message d'erreur. (je vous passe les détails).

    En ajoutant ce code ca marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    			Properties props = new Properties();
    			props.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    			props.put(Context.PROVIDER_URL, "t3://localhost:7001");
    			initialContext = new InitialContext(props);
    Mon problème est que je ne sais pas comment cela se fait et surtout comment j'aurais pu savoir qu'il fallait ajouter "weblogic.jndi.WLInitialContextFactory" et surtout "t3://localhost:7001"

    Merci pour votre aide
    NiGhMa

  2. #2
    Membre actif

    Inscrit en
    Mai 2002
    Messages
    328
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Mai 2002
    Messages : 328
    Points : 209
    Points
    209
    Par défaut
    Lorsque tu accèdes à un EJB via un client qui n'est pas dans la même JVM, tu dois initialiser le contexte pour que les requête JNDI puisse localiser tes objets sur le serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    props.put(Context.PROVIDER_URL, "t3://localhost:7001");
    permet de localiser le serveur. Pour ma part, je n'indique pas "t3" comme protocole mais peut être que ton serveur le demande ? (j'utilise JBoss)

    L'autre propriété permet de construire un contexte compatible avec le service JNDI de ton serveur J2EE (pour JBoss, c'est une classe différente par exemple). Ceci doit être expliqué dans la doc de ton serveur.

    Anthony

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Points : 100
    Points
    100
    Par défaut
    ok merci, je vais voir avec BEA pour l'explication.

    PS: Je travaille sur un serveur Weblogic 8.1
    NiGhMa

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

Discussions similaires

  1. [VB6]Comment savoir si un répertoire existe
    Par pendragon dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 30/09/2016, 06h42
  2. [linux] socket comment savoir si est un client est d
    Par Mascos dans le forum Réseau
    Réponses: 14
    Dernier message: 04/08/2004, 12h05
  3. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42
  4. Réponses: 9
    Dernier message: 11/03/2003, 12h22
  5. Réponses: 4
    Dernier message: 10/09/2002, 17h09

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