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 :
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 Context ctx = new InitialContext(); EjbExemple home = (EjbExempleHome)PortableRemoteObject.narrow( ctx.lookup(ejbname), EjbExempleHome.class ); ejb = home.create();
Ce qui donne ensuite :
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");
Et la, ça fonctionne…
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Context ctx = new InitialContext(properties);
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 :
Alors, voici donc mes questions !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Context ic = new InitialContext(); ds = (DataSource) ic.lookup(connectionname);
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 !!
Partager