zoukankan      html  css  js  c++  java
  • JMS的常用方法

    import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Session;
    import javax.jms.TextMessage;
    
    import org.apache.activemq.ActiveMQConnection;
    import org.apache.activemq.ActiveMQConnectionFactory;
    import com.ailk.biapp.ci.localization.cntv.service.IUserSynchronizationService;
    import com.asiainfo.biframe.utils.config.Configure;
    import com.asiainfo.biframe.utils.spring.SystemServiceLocator;
    
    public class JmsTopicReceiver {
        
        public void topicListener() {
    
            // ConnectionFactory :连接工厂,JMS 用它创建连接
            ConnectionFactory connectionFactory;
            // Connection :JMS 客户端到JMS Provider 的连接
            Connection connection = null;
            // Session: 一个发送或接收消息的线程
            Session session;
            // Destination :消息的目的地;消息发送给谁.
            Destination destination;
            // 消费者,消息接收者
            MessageConsumer consumer;
            
            String activeUrl = Configure.getInstance().getProperty("ACTIVE_URL");
            String topic = Configure.getInstance().getProperty("TOPIC_NAME");
            
            connectionFactory = new ActiveMQConnectionFactory(
                    ActiveMQConnection.DEFAULT_USER,
                    ActiveMQConnection.DEFAULT_PASSWORD, activeUrl);
            try {
                
                // 构造从工厂得到连接对象
                connection = connectionFactory.createConnection();
                // 启动
                connection.start();
                // 获取操作连接
                session = connection.createSession(Boolean.FALSE,
                        Session.AUTO_ACKNOWLEDGE);
                //test-queue跟sender的保持一致,一个创建一个来接收
                destination = session.createTopic(topic);
                consumer = session.createConsumer(destination);
                consumer.setMessageListener(new MessageListener() {
                    public void onMessage(Message message) {
                        try {
                            TextMessage txtMsg = (TextMessage)message;
                            String msg = txtMsg.getText();
                            //收到topic的时候增量同步用户
                            IUserSynchronizationService service = 
                                    (IUserSynchronizationService)SystemServiceLocator.getInstance().getService("userSynchronizationServiceImpl");
                            service.startIncrementalSync(msg);
                        } catch (Exception e) {
                            e.printStackTrace();
                        }
    
                    }
                });
    
           } catch (Exception e) {
                e.printStackTrace();
            }
    
        }
        
    }
  • 相关阅读:
    SQL必知必会-笔记(五)函数
    软件测试面试题:系统中的图片不显示如何排查原因
    windows用浏览器访问linux目录文件
    记测试工作中一次印象深刻的事
    怎么快速适应新的测试工作?
    xshell如何导出日志文件和上传文件
    jmeter+fiddler高效率整理接口脚本
    python-用requests库处理form-data格式的参数
    软件自动化测试工程师面试题集锦(4)
    shell脚本批量检查某个或多个服务的端口和进程是否正常
  • 原文地址:https://www.cnblogs.com/yangsy0915/p/4970475.html
Copyright © 2011-2022 走看看