ActiveMQ受信メッセージ


前にActiveMQがメッセージを送信する例を書きました.JavaがActiveMQメッセージを受信したコードを記録します.すべて私の仕事の中で書いたのです.皆さんに少し助けてほしいです.コードは次のとおりです.
package com.syxp.dns.receive;


import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.log4j.Logger;

public class ReceiveMessageFromMQ {

	private static String url = "tcp://localhost:61616";
	private static String user = "";
	private static String password = "";
	private static Logger logger = Logger.getLogger(ReceiveMessageFromMQ.class);
	
	public void receiveMessage(){
		//       
		ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(user, password, url);
        //     
        Connection connection;
		try {
			connection = connectionFactory.createConnection();
			connection.start();
	        //   Session
	        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
	        //     ,            
	        Destination destination = session.createQueue("integratedalarm.subject");
	        //        
	        MessageConsumer consumer = session.createConsumer(destination);
	        //     ,  :         , 0      ,receive       ,             ,  null
	        Message message = consumer.receive(1000);
	        if (message instanceof TextMessage) {
	            TextMessage textMessage = (TextMessage) message;
	            String text = textMessage.getText();
	            logger.info("     :"+"
"+text); } else { logger.info(" :"+"
"+message); } consumer.close(); session.close(); connection.close(); } catch (JMSException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { ReceiveMessageFromMQ receiveMessageFromMQ = new ReceiveMessageFromMQ(); receiveMessageFromMQ.receiveMessage(); } }

 
上記の詳細なコメントは、上記の受信方法を実行すると、対応するキューの未受信メッセージが印刷されます.ActiveMQの監視制御ページでは、すでに消費されているメッセージが表示されます.