[EJB3] [JBoss 4] NoInitialContextException
bonjour,
je veut faire marché un petit exemple d'EJB3 avec Eclipse Ganymede 3.4.2 mais ca marche pas !! par contre avec Eclipse WTP ca marche,
le probleme est au coté du client et plus précisément à l'accée du fichier JNDI, la publication au serveur (JBOSS 5) est bient faite.
voila mon code client:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| public static void main(String[] args) throws Exception {
try {
Context cont = new InitialContext();
MonRemote beanRemote = (MonRemote)
cont.lookup("MonBean/remote");
beanRemote.add(2,3);
} catch (NamingException e) {
e.printStackTrace();
}
}
} |
et l'erreur est:
Code:
1 2 3 4 5 6
| javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at khaled.Client.main(Client.java:27) |
monf fichier JNDI:
Code:
1 2 3
| java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=localhost:1099 |
NB: ce code marche bien sur Eclipse wtp avec Jboss 4.
merci d'avance
[EJB3] [JBoss 4] NoInitialContextException
Avec jndi.properties et puis java.util.Properties, l'exécution du client ejb3 a échoué. Et l'erreur c'était le naming.
La SOLUTION que j'ai trouvée est d'utiliser la méthode suivante :
---> context.addToEnvironment(propertyName,propertyValue);
au lieu de jndi.properties ou java.util.Properties.
et voilà le code ci-dessous. ça a marché ;)
--------------------------------------------------------------------------
try {
Context context = new InitialContext();
context.addToEnvironment("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
context.addToEnvironment("java.naming.factory.url.pkgs",
"=org.jboss.naming:org.jnp.interfaces");
context.addToEnvironment("java.naming.provider.url", "localhost:1099");
MonRemote beanRemote = (MonRemote) context
.lookup(MonBean.class.getSimpleName() + "/remote");
System.out.println(beanRemote.add(2,3));
} catch (NamingException e) {
e.printStackTrace();
}