Bonjour à tous
Je suis entrain d'apprendre le JMS et j'ai rencontré des problèmes quand je veux récupérer l'objet ConnectionFactory.
J'ai installé la dernière version de JDK 6 Update 17 with Java EE.
Voici mon code pour lookup l'objet ConnectionFactory:
Quand je compile, il n'y a aucune erreur, mais quand j'essaie à exécuter le programme, il m'a affiché une exception:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 try{ Context jndiContext = new InitialContext(); connectionFactory = (ConnectionFactory)jndiContext.lookup("jms/ConnectionFactory"); queue = (Queue)jndiContext.lookup("jms/queue"); }catch(NamingException exc){ System.err.println("Lookup Object failed"); exc.printStackTrace(); System.exit(1); }
javax.naming.NoInitialContextException: Cannot instantiate class: org.exolab.jms
.jndi.InitialContextFactory [Root exception is java.lang.ClassNotFoundException:
org.exolab.jms.jndi.InitialContextFactory]
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
57)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288
)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.<init>(InitialContext.java:175)
at SimpleMessageProducer.main(SimpleMessageProducer.java:49)
Caused by: java.lang.ClassNotFoundException: org.exolab.jms.jndi.InitialContextF
actory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.jav
a:46)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
54)
... 4 more
J'ai bien créer des ressources javax.jms.ConnectionFactory et un javax.jms.Queue dans la rubrique "resources/JMS Resources" du Admin Console de GlassFish Enterprise Server. Mais le programme ne trouver pas le contexte initial.
J'aimerais savoir si quelqu'un ait une idée pour débuger mon programme.
Merci d'avance.![]()
Partager