`
longgangbai
  • 浏览: 7340566 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

ActiveMQ异步发送JMS消息实例应用

阅读更多

服务端:

package cn.com.vnvtrip.apachemq;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * 消息的生产者(发送者)
 *
 * @author longgangbai
 *
 */
public class JmsSender {
 public static void main(String[] args) throws JMSException {
  // ConnectionFactory :连接工厂,JMS 用它创建连接
  ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
    ActiveMQConnection.DEFAULT_USER,
    ActiveMQConnection.DEFAULT_PASSWORD, "vm://localhost");

  // JMS 客户端到JMS Provider 的连接
  Connection connection = connectionFactory.createConnection();
  connection.start();
  // Session: 一个发送或接收消息的线程
  Session session = connection.createSession(Boolean.TRUE,
    Session.AUTO_ACKNOWLEDGE);
  // Destination :消息的目的地;消息发送给谁.
  // 获取session注意参数值my-queue是Query的名字
  Destination destination = session.createQueue("my-queue");
  // MessageProducer:消息生产者
  MessageProducer producer = session.createProducer(destination);
  // 设置不持久化
  producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
  // 发送一条消息
  sendMsg(session, producer);
  session.commit();
  connection.close();
 }

 /**
  * 在指定的会话上,通过指定的消息生产者发出一条消息
  *
  * @param session
  *            消息会话
  * @param producer
  *            消息生产者
  */
 public static void sendMsg(Session session, MessageProducer producer)
   throws JMSException {
  // 创建一条文本消息
  TextMessage message = session.createTextMessage("Hello ActiveMQ!");
  // 通过消息生产者发出消息
  producer.send(message);
  System.out.println("message=" + message);
 }
}

客户端:

package cn.com.vnvtrip.apachemq;

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

import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;

/**
 * 消息的消费者(接受者)
 *
 * @author longgangbai
 *
 */
public class JmsReceiver {
 public static void main(String[] args) throws JMSException {
  // ConnectionFactory :连接工厂,JMS 用它创建连接
  ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
    ActiveMQConnection.DEFAULT_USER,
    ActiveMQConnection.DEFAULT_PASSWORD, "vm://localhost");

  // JMS 客户端到JMS Provider 的连接
  Connection connection = connectionFactory.createConnection();
  connection.start();
  // Session: 一个发送或接收消息的线程
  Session session = connection.createSession(Boolean.TRUE,
    Session.AUTO_ACKNOWLEDGE);
  // Destination :消息的目的地;消息发送给谁.
  // 获取session注意参数值xingbo.xu-queue是一个服务器的queue,须在在ActiveMq的console配置
  Destination destination = session.createQueue("my-queue");
  // 消费者,消息接收者
  MessageConsumer consumer = session.createConsumer(destination);
  while (true) {
   TextMessage message = (TextMessage) consumer.receive(1000);
   if (null != message)
    System.out.println("收到消息:" + message.getText());
   else
    break;
  }
  session.close();
  connection.close();
 }
}

分享到:
评论
1 楼 marswon 2013-05-17  
您好,JMS消息,异步消费,实际应用场景是用户登录上来创建消费者,然后用户下线的时候,销毁消费者,因而是不同的方法,如何去实现?而不是异步收一次就关闭了?

相关推荐

    test_jms.zip_activemq_activemq案例_jms_jms test

    ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,允许分布式系统中的组件之间进行异步通信。JMS是一个为Java平台设计的消息传递标准,它提供了一种标准接口,使得应用程序可以发送和接收消息,...

    activeMQ-JMS实例

    总结来说,"activeMQ-JMS实例"是一个基于Spring MVC的示例,它演示了如何使用Spring的JMS支持与ActiveMQ结合,实现消息的发送和接收。这个实例对于学习和理解JMS以及如何在实际项目中应用它是很有帮助的。通过这个...

    ActiveMq+SpringMVC实现邮件异步发送

    当用户在Web应用中触发邮件发送时,SpringMVC控制器会创建一个消息,并通过JMS API将其发送到ActiveMQ。 为了实现这一功能,开发者需要在SpringMVC配置中添加ActiveMQ的相关配置,包括JMS模板和消息生产者的定义。...

    ActiveMq-JMS简单实例

    JMS是一种标准接口,用于在分布式环境中传递消息,使得应用程序之间可以进行异步通信。在这个"ActiveMQ-JMS简单实例"中,我们将探讨如何在Tomcat服务器上部署并使用ActiveMQ,以及通过代码实现JMS的基本功能。 首先...

    activeMq in action 使用activeMq开发JMS的简单讲述

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于Java消息服务(JMS)标准,为分布式系统提供高效、可靠的消息传递。本篇文章将深入探讨如何使用ActiveMQ进行JMS开发,以及ActiveMQ的核心特性。 一、...

    ActiveMQ实现的消息收发案例

    在IT行业中,消息队列(Message Queue)是一种重要的中间件技术,用于解耦应用程序的不同组件,使得它们可以异步通信。ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了Java消息服务(JMS,Java Message...

    spring 整合 activemq 生产者和消费者 案例源码

    首先,ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了JMS规范,允许应用程序之间进行异步通信。通过消息队列,生产者可以发送消息而不必关心消费者何时或是否接收,反之亦然,消费者可以在方便时处理...

    JMS ActiveMQ

    2. JMS客户端:使用JMS API发送和接收消息的Java应用程序。 3. JMS提供者:实现JMS规范的消息系统,例如ActiveMQ、IBM WebSphere MQ等。 4. ConnectionFactory:客户端用来建立与JMS提供者的连接。 5. Destination:...

    ActiveMq-JMS简单实例使用tomcat.doc

    Apache ActiveMQ 是一个流行的开源消息中间件,它实现了Java消息服务(JMS)规范,允许应用程序之间进行异步通信。在本文中,我们将探讨如何在Tomcat服务器上设置和使用ActiveMQ的简单实例。 **一、ActiveMQ的特点...

    JMS-ActiveMQ入门实例

    Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。JMS允许在分布式环境中交换异步...

    ActiveMQ基于Java和JavaScript的应用实例

    在Java中,我们可以使用ActiveMQ的JMS(Java Message Service)API来发送和接收消息。首先,需要添加ActiveMQ的JAR包到项目类路径中,然后创建一个ConnectionFactory对象,通过它建立连接并创建Session。Session是...

    ActiveMQ-P2P文本消息+Spring和ActiveMQ的整合实例源码

    4. **MessageListener**: 如果需要异步接收消息,可以实现 javax.jms.MessageListener 接口并提供 onMessage 方法。Spring 可以自动将该接口的实现注册为消息监听器。 **注解驱动的实例** 在描述中提到的“注解的...

    activeMQ JMS 3种创建方式

    ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它实现了Java消息服务(JMS)标准,为分布式系统提供高效、可靠的消息传递。在ActiveMQ中,有三种主要的方式来创建消息队列(QUEUE)和主题(TOPIC),这些...

    spring jms tomcat 异步消息传递入门实例

    综上所述,"spring jms tomcat 异步消息传递入门实例"旨在引导开发者理解如何在Spring应用中结合Tomcat使用JMS实现异步消息传递,从而提升系统的响应能力和处理大规模并发的能力。通过这个实例,你可以学习到Spring...

    JMS消息队列机制及案例

    在实际应用中,开发者可以结合ActiveMQ的特性和JMS规范,构建高效、可靠的分布式消息系统,解决系统间的同步问题,提升系统性能和稳定性。通过深入理解和实践,我们可以掌握如何利用JMS和ActiveMQ实现异步处理、系统...

    SpringBoot整合ActiveMQ(消息中间件)实现邮件发送功能

    在本项目中,"SpringBoot整合ActiveMQ(消息中间件)实现邮件发送功能"是一个典型的企业级应用示例,它展示了如何将SpringBoot框架与Apache ActiveMQ集成,以实现基于消息队列的邮件发送服务。下面我们将详细探讨这个...

    采用Spring整合activeMQ与quartz的JMS数据同步实例

    通过使用ActiveMQ,我们可以创建异步通信模式,使得应用程序可以解耦发送和接收消息的过程,从而提高系统的响应速度和可扩展性。 **Spring**:Spring是一个全面的Java企业级应用开发框架,提供了诸如依赖注入、面向...

    spring使用activeMQ实现消息发送

    在IT行业中,Spring框架是Java应用开发的基石,而ActiveMQ则是Apache组织开发的一款开源的消息中间件,用于处理异步通信和消息队列。本文将深入探讨如何在Spring环境中使用ActiveMQ来实现消息的发送与接收,以提高...

Global site tag (gtag.js) - Google Analytics