⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jmstemplatetest11messagelistener.java

📁 《精通Spring》源代码
💻 JAVA
字号:
/*
 * Created on 2004-12-25
 *
 * http://www.open-v.com 提供代码的维护工作
 */
package com.openv.spring;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import org.springframework.jms.core.JmsTemplate;

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

/**
 * JmsTemplateTest11MessageListener客户应用
 * 
 * @author luoshifei
 */
public class JmsTemplateTest11MessageListener implements MessageListener {
    protected static final Log log = LogFactory
            .getLog(JmsTemplateTest11MessageListener.class);

    private JmsTemplate jmsTemplate;

    private Connection conn;

    /**
     * 消息回调
     */
    public void onMessage(Message message) {
        if (message instanceof TextMessage) {
            TextMessage tm = (TextMessage) message;

            try {
                log.info(tm.getText());
            } catch (JMSException e) {
                log.error("JMSException", e);
            }
        }
    }

    public static void main(String[] args) throws JMSException {
        ApplicationContext ac = new ClassPathXmlApplicationContext(
                "appcontext11ml.xml");
        JmsTemplateTest11MessageListener jtt11ml = new JmsTemplateTest11MessageListener();
        jtt11ml.setJmsTemplate((JmsTemplate) ac.getBean("jmsTemplate"));
        jtt11ml.init();

        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            log.error("InterruptedException", e);
        }

        jtt11ml.destroy();
    }
    
    /**
     * 启动JMS监听器
     * 
     * @throws JMSException
     */
    public void init() throws JMSException {
        ConnectionFactory qcf = this.jmsTemplate.getConnectionFactory();
        Destination destination = this.jmsTemplate.getDefaultDestination();
        conn = qcf.createConnection("guest", "guest");

        Session session = conn.createSession(false,
                QueueSession.AUTO_ACKNOWLEDGE);
        MessageConsumer mc = session.createConsumer(destination);
        mc.setMessageListener(this);
        conn.start();
    }

    public void destroy() throws JMSException {
        conn.close();
    }

    /**
     * @param jmsTemplate
     *            The jmsTemplate to set.
     */
    public void setJmsTemplate(JmsTemplate jmsTemplate) {
        this.jmsTemplate = jmsTemplate;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -