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

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs Discussion :

Appel à un MDB


Sujet :

Plateformes (Java EE, Jakarta EE, Spring) et Serveurs

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Points : 25
    Points
    25
    Par défaut Appel à un MDB
    Salut tout le monde.
    voilà que j'ai créé un code MDB et je veux envoyer un message depuis un classe swing ... mais en le faisant je voudrais savoir comment savoir si l'MDB récupère vraiment le message ...
    Merci de m'aider ....

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    *
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package ejb;
     
    import javax.annotation.Resource;
    import javax.ejb.ActivationConfigProperty;
    import javax.ejb.MessageDriven;
    import javax.jms.*;
     
    /**
     *
     * @author laleye
     */
    @MessageDriven(mappedName = "jndi.properties", activationConfig = {
        @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge"),
        @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic"),
        @ActivationConfigProperty(propertyName = "subscriptionDurability", propertyValue = "Durable"),
        @ActivationConfigProperty(propertyName = "clientId", propertyValue = "NewMessageBean"),
        @ActivationConfigProperty(propertyName = "subscriptionName", propertyValue = "NewMessageBean")
    })
    public class MessageBean implements MessageListener {
       // @Resource(name="facture.jms")
        //private ConnectionFactory connectionFactory;
        //@Resource(name="jms/facture.jms")
        //private Destination destination;
        public MessageBean() {
        }
     
        @Override
        public void onMessage(Message message) {
            TextMessage tm = (TextMessage) message;
        try {
        String text = tm.getText(); 
        System.out.println("Received new message : " + text);
        } catch(JMSException e) {
        e.printStackTrace();
        }
        }
    }
    la classe swing

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package client;
     
    import javax.annotation.Resource;
    import javax.jms.*;
     
    /**
     *
     * @author laleye
     */
    public class Produire_Message {
     
        public Produire_Message() {
        }
     
             @Resource(name="facture.jms")
        private ConnectionFactory cnxFactory;
        @Resource(name="jms/facture.jms")
        private Destination destination;
        public void envoi_message(String mes) throws JMSException{
     
            Connection cnx = cnxFactory.createConnection();
     
        Session session = cnx.createSession(true, 0);
        MessageProducer producer = session.createProducer(destination);
        TextMessage message = session.createTextMessage();
        message.setText(mes);
        producer.send(message);
        cnx.close();
        }
     
    }

  2. #2
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    j'ai créé une classe cliente pour envoyer un message à MDB créé dans un EJB voilà ça ne marche pas et j'ai cette erreur:
    Code java : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     /*
     * To change this template, choose Tools | Templates
     * and open the template in the editor.
     */
    package client;
     
    import ejb.Remot;
    import ejb.StatelessEJB;
    import entite.Facture;
    import java.util.List;
    import java.util.Properties;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.annotation.Resource;
    import javax.ejb.EJB;
    import javax.ejb.embeddable.EJBContainer;
    import javax.jms.*;
    import javax.naming.Context;
    import javax.naming.InitialContext;
    import javax.naming.NamingException;
     
     
     
    /**
     *
     * @author laleye
     */
    //@EJB
     
    public class Client {
     
        /**
         * @param args the command line arguments
         */
       @Resource(mappedName = "jms/facture")
        private Topic facture;
        @Resource(mappedName = "jms/factureFactory")
        private ConnectionFactory factureFactory;
        public static void main(String[] args) throws NamingException, JMSException {
            // TODO code application logic here
            Client cl=new Client();
            cl.sendJMSMessageToFacture_jms("JESUS");
         //   sendJMSMessageToFacture_jms("JESUS");
           // System.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); 
    ////    System.setProperty("java.naming.provider.url", "localhost:1099");
    ////        try{
    ////            Properties props = new Properties();
    //// 
    ////  props.setProperty("java.naming.factory.initial",
    ////                    "com.sun.enterprise.naming.SerialInitContextFactory");
    //// 
    ////  props.setProperty("java.naming.factory.url.pkgs",
    ////                    "com.sun.enterprise.naming");
    //// 
    ////  props.setProperty("java.naming.factory.state",
    ////                    "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    ////  InitialContext ic = new InitialContext(props);
    ////  
    ////      Remot rm=(Remot) ic.lookup("java:global/test/FactureEJB!ejb.Remot");
    ////      rm.sendJMSMessageToFacture_jms("JESUS");
          //  rm.envoimessage("JESUS");
     //      List<Facture> f;
    //        f=rm.findAllFacture();
    //       f=rm.envoimessage();
       //   System.out.println(f.get(1).getDate().toString());
    ////        }catch(Exception e){
    ////            //System.out.println("impossible");
    ////            e.printStackTrace();
    ////                    }
       }
     
    private Message createJMSMessageForjmsFacture(Session session, Object messageData) throws JMSException {
            // TODO create and populate message to send
            TextMessage tm = session.createTextMessage();
            tm.setText(messageData.toString());
            return tm;
        }
     
            public void sendJMSMessageToFacture_jms(Object messageData) throws JMSException {
    Connection connection = null;
            Session session = null;
            try {
                connection = factureFactory.createConnection();
                session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
                MessageProducer messageProducer = session.createProducer(facture);
                messageProducer.send(createJMSMessageForjmsFacture(session, messageData));
            } finally {
                if (session != null) {
                    try {
                        session.close();
                    } catch (JMSException e) {
                        Logger.getLogger(this.getClass().getName()).log(Level.WARNING, "Cannot close session", e);
                    }
                }
                if (connection != null) {
                    connection.close();
                }
            }    }
    }
    voilà l'erreur que ça génère
    Exception in thread "main" java.lang.NullPointerException
    at client.Client.sendJMSMessageToFacture_jms(Client.java:83)
    at client.Client.main(Client.java:42)
    Java Result: 1
    erreur sur la ligne suivante
    connection = factureFactory.createConnection();

Discussions similaires

  1. Réponses: 1
    Dernier message: 05/07/2015, 18h05
  2. Appeler une fonction avec/sans parenthèses
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 29/12/2002, 18h48
  3. Réponses: 4
    Dernier message: 07/12/2002, 07h34
  4. Appel de procédure...
    Par AmaX dans le forum Langage
    Réponses: 4
    Dernier message: 24/11/2002, 17h48
  5. appel de fichier d'Aide
    Par Atrebate62 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 24/09/2002, 14h13

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