`
xfjt297857539
  • 浏览: 152255 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JMS-ActiveMQ入门 (zhuan)

    博客分类:
  • J2EE
 
阅读更多
ActiveMQ使用笔记 


1.下载ActiveMQ5.1,官方网站地址:http://activemq.apache.org/

2.解压,双击bin目录下activemq.bat



管理页面:http://localhost:8161/admin



3.创建queue,这里创建一个名为queue1的queue,供测试用



4.Queue发送

package demo.activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

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

public class QueueSend {
private static final int SEND_NUMBER = 5;

public static void main(String[] args) {
  // ConnectionFactory :连接工厂,JMS 用它创建连接
  ConnectionFactory connectionFactory;
  // Connection :JMS 客户端到JMS Provider 的连接
  Connection connection = null;
  // Session: 一个发送或接收消息的线程
  Session session;
  // Destination :消息的目的地;消息发送给谁.
  Destination destination;
  // MessageProducer:消息发送者
  MessageProducer producer;
  // TextMessage message;
  // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar

  connectionFactory = new ActiveMQConnectionFactory(
    ActiveMQConnection.DEFAULT_USER,
    ActiveMQConnection.DEFAULT_PASSWORD,
    "tcp://localhost:61616");

  try {
   // 构造从工厂得到连接对象
   connection = connectionFactory.createConnection();
   // 启动
   connection.start();
   // 获取操作连接
   session = connection.createSession(Boolean.TRUE,
     Session.AUTO_ACKNOWLEDGE);
   // queue1需要在admin界面创建
   destination = session.createQueue("queue1");
   // 得到消息生成者

   producer = session.createProducer(destination);
   // 设置不持久化,此处学习,实际根据项目决定
   producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
   // 构造消息,此处写死,项目就是参数,或者方法获取
   sendMessage(session, producer);
   session.commit();

  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (null != connection)
     connection.close();
   } catch (Throwable ignore) {
   }
  }

}

public static void sendMessage(Session session, MessageProducer producer)
   throws Exception {
  for (int i = 1; i <=SEND_NUMBER; i++) {
   TextMessage message = session
     .createTextMessage("ActiveMq 发送的消息" + i);
   // 发送消息到目的地方
   System.out.println("发送消息:" + i+"成功");
   producer.send(message);
  }
}
}

执行之后



4.Queue接收消息

package demo.activemq;

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

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

public class QueueReceive{
public static void main(String[] args) {

  // ConnectionFactory :连接工厂,JMS 用它创建连接
  ConnectionFactory connectionFactory;
  // Connection :JMS 客户端到JMS Provider 的连接
  Connection connection = null;
  // Session: 一个发送或接收消息的线程
  Session session;
  // Destination :消息的目的地;消息发送给谁.
  Destination destination;
  // 消费者,消息接收者
  MessageConsumer consumer;

  connectionFactory = new ActiveMQConnectionFactory(
    ActiveMQConnection.DEFAULT_USER,
    ActiveMQConnection.DEFAULT_PASSWORD,
    "tcp://localhost:61616");
  try {
   // 构造从工厂得到连接对象
   connection = connectionFactory.createConnection();
   // 启动
   connection.start();
   // 获取操作连接
   session = connection.createSession(Boolean.FALSE,
     Session.AUTO_ACKNOWLEDGE);
   // 获取session注意参数是一个服务器的queue,须在在ActiveMq的console配置
   destination = session.createQueue("queue1");
   consumer = session.createConsumer(destination);
   while (true) {
    TextMessage message = (TextMessage) consumer.receive(1000);
    if (null != message) {
     System.out.println("收到消息" + message.getText());

    } else {
     break;
    }

   }

  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (null != connection)
     connection.close();
   } catch (Throwable ignore) {
   }
  }

}
}

需要的包:active-core_5.1.0.jar,commons-logging.jar,geronimo-j2ee-management_1.0_spec-1.0.jar,jms.jar
分享到:
评论

相关推荐

    JMS-ActiveMQ入门实例

    **JMS与ActiveMQ入门实例详解** Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。...

    apache-activemq-5.10到apache-activemq6.1大版本合集

    activemq-parent-5.10.0-source-release.zip activemq-parent-5.10.2-source-release.zip activemq-parent-5.12.3-source-release.zip apache-activemq-5.10.2-bin.tar.gz apache-activemq-5.11.4-bin.zip apache-...

    apache-activemq-5.8.0-bin.zip

    这个压缩包"apache-activemq-5.8.0-bin.zip"包含了ActiveMQ 5.8.0版本的二进制发行版,供用户在本地计算机上安装和运行。 1. **Apache ActiveMQ简介** - Apache ActiveMQ是业界广泛使用的消息代理,提供可靠的消息...

    apache-activemq-5.9.0-bin

    这个“apache-activemq-5.9.0-bin”压缩包包含了Apache ActiveMQ 5.9.0版本的完整二进制文件,用于在本地或网络环境中安装和运行。 Apache ActiveMQ的核心功能包括: 1. **消息队列**:ActiveMQ支持多种消息模式,...

    JMS-activemq 实例(分ppt,eclipse工程,说明三部分)

    3. **Eclipse工程** - `JMS` 文件可能是一个Eclipse项目,用于演示如何在实际开发环境中集成和使用JMS与ActiveMQ。这个工程可能包含了配置文件(如Spring的XML配置)、消息生产者和消费者的Java代码,以及必要的依赖...

    linux 下apache-activemq.zip

    配置文件位于`/opt/apache-activemq-5.x.x/conf`目录下,主要关注`activemq.xml`。这个文件定义了ActiveMQ的核心配置,包括消息存储、网络连接等。根据需求,你可以调整这些设置以优化性能或安全性。 3. **启动和...

    ApacheCamel-JMS-ActiveMQ

    在学习和使用"ApacheCamel-JMS-ActiveMQ"时,以下是一些关键知识点: - **Apache Camel组件**:了解Camel提供的各种组件,如File、JMS、HTTP等,以及它们如何组合形成复杂的路由。 - **JMS概念**:理解消息队列的...

    apache-activemq-5.15.9.rar

    在本文中,我们将深入探讨Apache ActiveMQ,特别是针对“apache-activemq-5.15.9-bin.zip”这个版本在Windows平台上作为MQTT服务器的使用。 首先,让我们理解MQTT(Message Queuing Telemetry Transport)。MQTT是...

    HETF-ActiveMQ入门手册.doc

    HETF-ActiveMQ入门手册.doc

    apache-activemq-5.15.8-bin.zip

    这个"apache-activemq-5.15.8-bin.zip"文件包含了ActiveMQ的可执行版本,用于在本地计算机上安装和运行ActiveMQ服务。 首先,我们需要了解ActiveMQ的核心概念。它是一个消息代理,扮演着消息生产者与消费者之间的...

    apache-activemq-5.15.12-bin.tar.gz

    tar -zxvf apache-activemq-5.15.12-bin.tar.gz 2.进入bin目录 cd /apache-activemq-5.15.12/bin 3.运行,没有配置环境变量只能在bin目录下使用命令 ./activemq 4.配置环境变量,配置完环境变量之后...

    apache-activemq-5.16.0-linux版本

    apache-activemq-5.16.0

    apache-activemq-5.16.5

    标题"apache-activemq-5.16.5"指的是该软件的一个特定版本,即5.16.5版本,通常每个新版本都会包含错误修复、性能提升以及新功能的添加。 描述中提到"启动要求jdk版本8+", 这意味着在运行Apache ActiveMQ 5.16.5...

    apache-activemq-5.18.5-bin.zip

    apache-activemq-5.18.5-bin

    apache-activemq-5.16.6-bin.zip

    这个"apache-activemq-5.16.6-bin.zip"文件包含了ActiveMQ的最新稳定版本5.16.6的二进制发行版,主要用于在各种环境中部署和运行。 **Apache ActiveMQ核心概念** 1. **消息队列(Message Queue)**: 消息队列是...

    apache-activemq-5.13.2-bin.tar.gz

    这个`apache-activemq-5.13.2-bin.tar.gz`压缩包包含了ActiveMQ的可执行版本,适用于运行在Linux环境下的Java应用程序。版本号5.13.2意味着这是该软件的特定稳定版本,它可能包含了bug修复和性能优化。 ActiveMQ的...

    apache-activemq-5.5.1-bin.zip加上入门demo

    解压缩apache-activemq-5.5.1-bin.zip,然后双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。 包含了apache-activemq-5.5.1-bin.zip以及ActiveMQ一个helloworld的demo启动ActiveMQ以后,登陆:...

    apache-activemq-5.14.3-bin.zip

    这个"apache-activemq-5.14.3-bin.zip"压缩包包含了在Windows环境下部署和运行ActiveMQ所需的所有文件。让我们深入探讨一下这个版本的ActiveMQ及其在Java消息服务中的应用。 首先,Java消息服务(JMS)是一种标准...

Global site tag (gtag.js) - Google Analytics