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:

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) 
 
...
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
    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);}
    }
Est ce que l'appel JNDI est correct ou est ce que je me suis planté à ce niveau?

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.