JMS的常用方法

简介: import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.
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();
        }

    }
    
}

 

目录
相关文章
|
4月前
|
消息中间件 Java Kafka
如何在Java中实现异步消息处理?
如何在Java中实现异步消息处理?
|
5月前
|
消息中间件 存储 负载均衡
Java中的异步消息传递模式
Java中的异步消息传递模式
|
5月前
|
消息中间件 Java API
Java一分钟之-JMS:Java消息服务
【6月更文挑战第11天】Java消息服务(JMS)是企业应用中实现组件解耦和异步通信的标准API。它包含点对点(P2P)和发布/订阅(Pub/Sub)两种消息模型。常见问题包括混淆消息模型、忽略事务管理和资源泄露。解决方法包括明确业务需求选择模型、使用事务确保消息可靠性以及正确关闭资源。文中提供了使用ActiveMQ的P2P模型的生产者和消费者代码示例,强调理解基础概念、避免问题以及实践是使用JMS的关键。
197 2
|
安全 Java 数据处理
Java Consumer 接口详解
在Java编程中,有时需要对某个对象进行操作或者处理,而这个操作可能是非常灵活的。Java 8引入了函数式编程的特性,其中的一个重要接口就是Consumer接口。本文将详细介绍Consumer接口,包括它的定义、用法以及示例。
229 0
|
6月前
|
消息中间件 开发框架 Java
使用ActiveMQ进行Java消息传递
【4月更文挑战第16天】本文介绍了ActiveMQ,一个流行的开源消息中间件,它支持JMS规范,提供持久化、事务和集群等功能。文章讲解了Java消息服务(JMS)的点对点和发布/订阅两种消息模型,并展示了如何在Java应用中集成ActiveMQ,创建生产者和消费者进行消息传递。此外,还提及了消息确认和事务在实际应用中的重要性,强调了ActiveMQ在系统解耦、可扩展性和可靠性方面的优势。
80 0
|
自然语言处理 Java
使用axis调用WebService,Java WebService调用工具类
使用axis调用WebService,Java WebService调用工具类
1711 0
使用axis调用WebService,Java WebService调用工具类
|
存储 Java API
Java 集合和流
Java Stream API 提供了一种更实用的编程方法来迭代和处理集合等元素。Java Stream API 是在 Java 8 中添加到 Java 中的。流大部分是和Java lambda 表达式一起使用,不熟悉lambda 表达式的建议了解之后阅读。
47 0
|
前端开发 Java 数据库
JMS 作用| 学习笔记
快速学习 JMS 作用
JMS 作用| 学习笔记
|
安全
CollectionUtils工具类的常用方法
集合判断:   例1: 判断集合是否为空:  CollectionUtils.isEmpty(null): true  CollectionUtils.isEmpty(new ArrayList()): true    CollectionUtils.
2061 0
|
存储 缓存 Java
Hibernate的常用方法区别(六)
Hibernate的常用方法区别(六)
136 0
Hibernate的常用方法区别(六)