2
我正在使用glassfish服務器測試JMS,因此我想在glassfish服務器隊列上發送簡單的文本消息。我曾嘗試使用ActiveMQ,這很好,但我無法理解我可以在配置jndi.properties文件中放置哪些jar以及glassfish服務器需要哪個jar。請給我一些想法來實現這一點。在glassfish服務器上使用JMS發送文本消息
在此先感謝
我正在使用glassfish服務器測試JMS,因此我想在glassfish服務器隊列上發送簡單的文本消息。我曾嘗試使用ActiveMQ,這很好,但我無法理解我可以在配置jndi.properties文件中放置哪些jar以及glassfish服務器需要哪個jar。請給我一些想法來實現這一點。在glassfish服務器上使用JMS發送文本消息
在此先感謝
由於您使用Glassfish的,最簡單的方法是編寫簡單的應用程序(EJB)將執行的任務。你必須在GF定義:
jms/ConnectionFactory
jms/myQueue
下一步是在你需要編寫的某些EJB中使用這些。這並不難:首先,你必須注入:
@Resource(mappedName="jms/ConnectionFactory")
private ConnectionFactory cf;
@Resource(mappedName="jms/myQueue")
private Queue messageQueue;
,然後用它是這樣的:
..
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
}
}
關於配置,你不需要任何外部JAR,是需要附帶的一切。如果您不想編寫EJB,而是定期使用Java(獨立)應用程序,則必須包含jms.jar
和imq.jar
。