如何配置我的J2EE應用程序,以便可以與Tomcat服務器一起調用ActiveMQ服務?我知道關於嵌入式代理,這裏詢問如何啓動ActiveMQ,只要我啓動tomcat如何在tomcat啓動時啓動ActiveMQ?
當前代碼(正常工作): 現在我想刪除main()方法並使用代碼在tomcat運行時運行。
public class JMSService {
public void produceJMS() throws NamingException, JMSException {
ConnectionFactory connFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL);
Connection conn = connFactory.createConnection();
conn.start();
Session session = conn.createSession(false,Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("testQueue");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
TextMessage message = session.createTextMessage("Test Message ");
// send the message
producer.send(message);
System.out.println("sent: " + message);
}}
這裏是我的消費:
public class JMSReceiver implements MessageListener,ExceptionListener {
public static void main(String args[]) throws Exception {
JMSReceiver re = new JMSReceiver();
re.receiveJMS();
}
public void receiveJMS() throws NamingException, JMSException {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_BROKER_URL);
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false,Session.AUTO_ACKNOWLEDGE);
// Getting the queue 'testQueue'
Destination destination = session.createQueue("testQueue");
MessageConsumer consumer = session.createConsumer(destination);
// set an asynchronous message listener
JMSReceiver asyncReceiver = new JMSReceiver();
consumer.setMessageListener(asyncReceiver);
connection.setExceptionListener(asyncReceiver);
}
@Override
public void onMessage(Message message) {
System.out.println("Received message : " +message);
}
}
您是否嘗試從您的客戶中刪除'connection.close()'? –
感謝您的時間。請檢查我的更新 –
由於它是java程序,它應該在jvm(java.exe)中運行。可能性是運行你的客戶端在像tomcat這樣的服務器上運行,或者作爲主線程運行。 –