IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java EE Discussion :

MDB, JMS et OC4J/problème d'accès ConnectionFactory


Sujet :

Java EE

  1. #1
    Invité
    Invité(e)
    Par défaut MDB, JMS et OC4J/problème d'accès ConnectionFactory
    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.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bon au final j'ai fini par trouver une solution.

    Bien que ca semblait tentant, OracleASjms/MyQCF est une factory à un niveau plus haut que l'OC4J, donc si on créé une destination dans l'OC4J, ils ne se voient pas.

    Il faut donc bien créer une factory au niveau de l'OC4J en lui-même et faire appel à celle là; plutot qu'à la QueueConnectionFactory globale que voici.

    *problème résolu*

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ADO] [MSACCESS] Problème d'accès à une table nommée OF
    Par FredRaid dans le forum Bases de données
    Réponses: 3
    Dernier message: 15/02/2005, 17h22
  2. Problème d'accès à une DB
    Par Mvu dans le forum ASP
    Réponses: 4
    Dernier message: 04/01/2005, 11h36
  3. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02
  4. problème d'acces concurentiel à un fichier
    Par Theoden dans le forum MFC
    Réponses: 2
    Dernier message: 04/03/2004, 09h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo