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

Wildfly/JBoss Java Discussion :

simple questions / informtions


Sujet :

Wildfly/JBoss Java

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Points : 99
    Points
    99
    Par défaut simple questions / informtions
    Bonjour a tous !!

    Je reviens encore sur ce Forum pour une simple information que j'ai vraiment du mal à comprendre et à trouver sur le net !

    Voila ! J'ai eu un problème pour trouver un EJB à partir d'une application. En fait, je pense que ce problème, beaucoup l'on eu, ou l'on encore !

    En, fait, un EJB était déployé avec succès sous un nom JNDI, par exemple « ejbname ». Pour le récupérer, je fait donc ceci comme indiquer dans tout les tutos :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Context ctx = new InitialContext();
    EjbExemple home = (EjbExempleHome)PortableRemoteObject.narrow( ctx.lookup(“ejbname”), EjbExempleHome.class );
    ejb = home.create();
    Ceci fait dans un jsp fonctionne, il récupère bien l’ejb et peut s’en servir. Mais, dans une application que j’ai déployée, il ne trouve pas cet ejb et à besoin d’initialiser sa Properties.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    properties = new Properties();
    properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
    properties.put(Context.PROVIDER_URL, "localhost:1099");
    Ce qui donne ensuite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Context ctx = new InitialContext(properties);
    Et la, ça fonctionne…

    Mais sachant que l’ejb en question interagit avec une base de données Oracle, j’ai eu besoin aussi de récupérer la connexion… Or, pour la conection, ceci fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Context ic = new InitialContext();
    ds = (DataSource) ic.lookup(“connectionname”);
    Alors, voici donc mes questions !
    Pourquoi le jsp fonctionne sans initialiser les propriétés du contexte alors qu’il faut le faire pour l’application web (.war) ?
    Si cela vient du fait que la jsp est interprété par le serveur qui possède donc ses propriétés via le fichier jndi.properties (un truc comme ça) pourquoi en n’a-t-il pas besoin pour récupérer la connexion à la base de données (aussi dans l'application web)??

    Merci beaucoup, bien que mon programme fonctionne, j’aime pas quand je sais pas pourquoi !!

  2. #2
    Membre éclairé Avatar de XmasRock
    Inscrit en
    Janvier 2007
    Messages
    729
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 729
    Points : 821
    Points
    821
    Par défaut
    Lorsque ton code fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new InitialContext(...)
    et qu'il est déployé au sein de JBoss AS, le contexte retourné par JBoss AS utilise, par défaut, les propriétés nécessaires pour accéder à son arbre JNDI.

    Si le même code est exécuté en dehors de JBoss AS, il te faut préciser les propriétés.

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 137
    Points : 99
    Points
    99
    Par défaut
    Merci XmasRock !!

    Mais ceci explique bien pourquoi le jsp fonctionne et non l'application, ça, je suis d'accord...

    Mais dans cette même application, pourquoi ai-je besoin d'initialiser la "properties" pour récupérer un EJB et pas pour récupérer la source de donnée ?

    Merci pour ta réponse en tout cas !

Discussions similaires

  1. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  2. Simple Question ....
    Par soltani.slim dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 25/08/2005, 18h11
  3. [langage] simple question ...
    Par perlgirl dans le forum Langage
    Réponses: 13
    Dernier message: 16/07/2004, 13h22
  4. PageControl -> Une simple question
    Par Invité dans le forum C++Builder
    Réponses: 4
    Dernier message: 08/05/2004, 09h19

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