Salut à tous,
Voici mon problème, j'essaie d'envoyer un message sur un serveur JMS qui est sous Websphere 6 à partir d'une application sous Tomcat 5.5 qui s'exécute sous la JRE 5 de Sun.
Voici mon code :
Hashtable<String, String> h = new Hashtable<String, String>();
h.put(Context.SECURITY_PRINCIPAL, "guest");
h.put(Context.SECURITY_CREDENTIALS, "guest");
h.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");
h.put(Context.PROVIDER_URL, "iiop://localhost:2809");
Context jndi = null;
QueueConnectionFactory conFabrique = null;
try {
jndi = new InitialContext(h);
if (jndi != null) {
System.out.println("jndi = " + jndi);
Hashtable hash = jndi.getEnvironment();
Enumeration<String> keys = hash.keys();
while (keys.hasMoreElements()) {
String key = (String) keys.nextElement();
System.out.println(key + " : " + hash.get(key));
}
conFabrique = (QueueConnectionFactory) jndi
.lookup(connectionFactoryName);
queue = (Queue) jndi.lookup(queueName);
} else {
System.out.println("JNDI non initialisé");
}
} catch (NamingException e) {
e.printStackTrace();
}
Et j'ai l'erreur suivante qui se produit au moment du jndi.getEnvironment() ou, si je supprime cette ligne, au moment du jndi.lookup :
javax.naming.NamingException: Failed to initialize the ORB [Root exception is java.lang.ClassCastException: com.sun.corba.se.impl.orb.ORBImpl]
at com.ibm.ws.naming.util.Helpers.getOrb(Helpers.java:318)
at com.ibm.ws.naming.util.WsnInitCtxFactory.getInitialContextInternal(WsnInitCtxFactory.java:392)
at com.ibm.ws.naming.util.WsnInitCtx.getContext(WsnInitCtx.java:117)
at com.ibm.ws.naming.util.WsnInitCtx.getContextIfNull(WsnInitCtx.java:712)
at com.ibm.ws.naming.util.WsnInitCtx.getEnvironment(WsnInitCtx.java:677)
at javax.naming.InitialContext.getEnvironment(InitialContext.java:484)
at fr.inra.p2i.jms.Sender.init(Sender.java:151)
at fr.inra.p2i.jms.Sender.<init>(Sender.java:116)
at fr.inra.p2i.jms.Main.main(Main.java:9)
Caused by: java.lang.ClassCastException: com.sun.corba.se.impl.orb.ORBImpl
at com.ibm.ws.orb.GlobalORBFactory.init(GlobalORBFactory.java:86)
at com.ibm.ejs.oa.EJSORBImpl.initializeORB(EJSORBImpl.java:179)
at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:83)
at com.ibm.ejs.oa.EJSClientORBImpl.<init>(EJSClientORBImpl.java:59)
at com.ibm.ejs.oa.EJSORB.init(EJSORB.java:102)
at com.ibm.ws.naming.util.Helpers.getOrb(Helpers.java:309)
... 8 more
Si j'exécute mon prog à partir de la JRE IBM ça marche!!! Quand je reviens sous la JRE SUN, j'ai cette erreur. Sachant que je rajoute bien toutes les librairies JAR contenues dans IBM_JDK_HOME/jre/lib et IBM_JDK_HOME/jre/lib/ext dans le CLASSPATH du prog lors de l'exécution avec la JRE SUN.
J'ai déjà vu plusieurs msg ds plusieurs forums concernant ce type de problème mais qui n'ont pas trouvés de réponses. Merci de m'aider si quelqu'un à une solution à mon problème. Ou de me proposer une autre solution...
Merci.
Partager