2 votes

Envoyer un message texte en utilisant JMS sur un serveur glassfish

Je teste JMS avec le serveur glassfish et pour cela je veux envoyer un simple message texte sur la queue du serveur glassfish. J'ai essayé avec ActiveMQ et cela se passe bien mais je n'arrive pas à comprendre ce que je dois mettre dans le fichier de configuration jndi.properties et quel jar est nécessaire pour le serveur glassfish. S'il vous plaît, donnez-moi une idée pour mettre en œuvre cette solution.

merci d'avance

2voto

Miljen Mikic Points 2965

Comme vous utilisez Glassfish, le plus simple est d'écrire une application simple (EJB) qui effectuera la tâche. Vous devez définir dans GF :

  • ConnectionFactory (Ressources -> Ressources JMS -> Connection Factory), donnons-lui un nom JNDI jms/ConnectionFactory
  • File d'attente de messages (Ressources -> Ressources JMS -> Ressources de destination), donnons-lui un nom JNDI jms/myQueue

L'étape suivante consiste à les utiliser dans un EJB que vous devez écrire. Ce n'est pas difficile : tout d'abord, vous devez injecter :

@Resource(mappedName="jms/ConnectionFactory")
private ConnectionFactory cf;

@Resource(mappedName="jms/myQueue")
private Queue messageQueue;

et ensuite l'utiliser comme ceci :

..
    javax.jms.Connection conn = null;
    javax.jms.Session s = null;
    javax.jms.MessageProducer mp = null
    try {
        conn = cf.createConnection();
        s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
        mp = s.createProducer(messageQueue);
        javax.jms.TextMessage msg = s.createTextMessage();
        msg.setStringProperty("your-key", "your-value");
        msg.setText("Your text message");
        mp.send(msg);        
    }
    catch(JMSException ex) {
        // exception handling
    }
    finally {
        try {
            // close Connection, Session and MessageProducer
        } catch (JMSException ex) {
                //exception handling
        }
    }

En ce qui concerne la configuration, vous n'avez pas besoin de JAR externe, tout ce qui est nécessaire est livré. Si vous ne souhaitez pas écrire d'EJB, mais une application Java classique (autonome), vous devrez inclure le fichier jms.jar y imq.jar .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X