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
.