Bonjour,
je dois constituer un jeu d'essai pour tester des OC4J liés à certaines versions d'application server.
J'ai un soucis sur un de ces jeux d'essais avec mes tests sur les Message Driven Bean (je n'en avais jamais utilisé jusqu'à présent; et j'avais encore jamais touché à J2EE y a 6 mois donc pour l'instant j'ai encore du mal).
Donc; j'arrive à faire le déploiement et "en théorie" à accéder à ma queueConnectionFactory (celle qui est paramétré par défaut).
Cependant lorsque je lance mon message depuis un Bean Facade, il ne me trouve pas la factory en question:
Mon appel se fait de cette manière:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 javax.ejb.EJBException: Error looking up home; nested exception is: javax.naming.NameNotFoundException: java:comp/env/jms/OracleASjms /MyQCF not found in Facade javax.naming.NameNotFoundException: java:comp/env/jms/OracleASjms/MyQCF not found in Facade at com.oracle.naming.J2EEContext.getSubContext(J2EEContext.java:199) at com.oracle.naming.J2EEContext.lookup(J2EEContext.java:146) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.ApplicationContext.lookupInJavaContext(ApplicationContext .java:306) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.ApplicationContext.unprivileged_lookup(ApplicationContext .java:230) at com.evermind[Oracle Containers for J2EE 10g (10.1.3.1.0) ].server.ApplicationContext.lookup(ApplicationContext.java:195) at javax.naming.InitialContext.lookup(InitialContext.java:351) at com.ejbstruts.model.FacadeBean.sendMessage(FacadeBean.java:218) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ...
Est ce que l'appel JNDI est correct ou est ce que je me suis planté à ce niveau?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public void sendMessage() { try{ Context contexte =InitContext.getContext().getInitialContext(); //Insertion d'un message dans le bean message QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) contexte.lookup("java:comp/env/jms/OracleASjms/MyQCF"); Queue queue = (Queue)contexte.lookup("java:comp/env/jms/demoQueue"); QueueConnection queueConnection = queueConnectionFactory.createQueueConnection(); QueueSession queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); QueueSender queueSender = queueSession.createSender(queue); TextMessage message = queueSession.createTextMessage(); message.setText("Bonjour!"); queueSender.send(message); }catch(JMSException e) {throw new EJBException(e.toString()); }catch (NamingException e){throw new EJBException("Error looking up home", e);} }
Apparement la factory est définie avec le lien : OracleASjms/MyQCF mais je ne suis pas sur de la manière dont j'invoque la chose.
Partager