`
qingcyangg
  • 浏览: 14776 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

ActiveMq使用

 
阅读更多
首先自己搭建一个acticemq服务器,下载http://activemq.apache.org/(现在最新的版本是5.8.0)。
将文件解压,直接运行bin文件夹下的activemq.bat文件,查看doc窗口,要是没出现异常信息的话,可以认为是启动好了,在浏览器上面输入:http://127.0.0.1:8161/admin。这个时候会弹出一个对话框,输入用户名和密码。(在activemq里面默认使用的是jetty容器,而默认情况下登录该容器是需要权限验证的,用户名和密码都是admin,可以查看conf\jetty-realm.properties)。如果这里不需要权限验证,将conf/jetty.xml下面的  <bean id="securityConstraint" class="org.eclipse.jetty.util.security.Constraint">
        <property name="name" value="BASIC" />
        <property name="roles" value="admin" />
        <property name="authenticate" value="false" />
    </bean>。使用代码创建连接用于发送和接受消息的时候也需要密码,查看conf\credentials.properties文件。目前来说简单的服务器算是好了,开始代码。

发送端代码:public void send() {
try {
// 创建一个连接工厂
String url = "tcp://127.0.0.1:61616";
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url);
// 设置用户名和密码,这个用户名和密码在conf目录下的credentials.properties文件中,也可以在activemq.xml中配置
connectionFactory.setUserName("system");
connectionFactory.setPassword("manager");
// 创建连接
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建目标,就创建主题也可以创建队列
Destination destination = session.createQueue("TEST");
// 创建消息生产者
MessageProducer producer = session.createProducer(destination);
// 设置持久化,DeliveryMode.PERSISTENT和DeliveryMode.NON_PERSISTENT
producer.setDeliveryMode(DeliveryMode.PERSISTENT);
// 创建消息
String text = "测试消息";
TextMessage message = session.createTextMessage(text);
// 发送消息到ActiveMQ
producer.send(message);
message.acknowledge();
// 关闭资源
session.close();
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
接受端代码:
public class JmsReceiverListener implements MessageListener,ExceptionListener,Runnable{

//连接工厂,JMS用它来创建连接
ConnectionFactory connectionFactory;
//JMS客户端到JMS provider的连接
Connection connection;
//一个发送或者接受消息的线程
Session session;
//消息的目的地
Destination destination;
    //消息的消费者(消息的接受者)
MessageConsumer consumer;

public JmsReceiverListener() throws JMSException{
String url = "tcp://127.0.0.1:61616";
// 设置用户名和密码,这个用户名和密码在conf目录下的credentials.properties文件中,也可以在activemq.xml中配置
connectionFactory = new ActiveMQConnectionFactory("system","manager",url);
// 创建连接
    connection = connectionFactory.createConnection();
    connection.setExceptionListener(this);  //异常处理
connection.start();
// 创建Session,如何为true表示消息一直在队列当中不会被取走,及时没有被消费掉,如果为false的话则表示消费了就会被取走
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
// 创建目标,就创建主题也可以创建队列
destination = session.createQueue("test");
// 创建消息消费者
consumer = session.createConsumer(destination);

}

public void run(){
try {
        consumer.setMessageListener(this);
        } catch (JMSException e) {
        e.printStackTrace();
        }
}


    @Override
    public void onMessage(Message message) {
if (message instanceof TextMessage) {
TextMessage textMessage = (TextMessage)message;
String text=null;
            try {
            text = textMessage.getText();
            } catch (JMSException e) {
             e.printStackTrace();
            }
System.out.println("Received: " + text);
} else {
System.out.println("Received: " + message);
}
    }

/* (non-Javadoc)
     * @see javax.jms.ExceptionListener#onException(javax.jms.JMSException)
     */
    @Override
    public void onException(JMSException exception) {
   System.out.println("消息异常"); 
    }

     public static void main(String[] args) throws JMSException {
    JmsReceiverListener listener=new JmsReceiverListener();
    new Thread(listener).start(); 
    }
}

简单的用于消息的发送、接受是可以完成了。
分享到:
评论

相关推荐

    ActiveMQ使用手册(中文版)

    ### ActiveMQ 使用手册知识点概述 #### 一、ActiveMQ 原理与基本构件 **1.1 连接工厂(Connection Factory):** - **定义:** 连接工厂是客户端用来创建连接的对象。在ActiveMQ中,`ActiveMQConnectionFactory` 类...

    ActiveMQ使用SSL加密文件Demo

    **ActiveMQ 使用 SSL 加密文件 Demo** ActiveMQ 是一个开源的消息代理服务器,它遵循 Java Message Service(JMS)规范,提供了可靠的消息传递功能。在实际的生产环境中,为了确保消息传输的安全性,我们通常会使用...

    ActiveMQ使用mqtt协议的实现发布消息的三种方式.txt

    java中使用消息中间件ActiveMQ的MQTT协议发布消息使用fusesource,fusesource提供三种方式实现发布消息的方式,分别是阻塞式(BlockingConnection)、回调式(CallbackConnection)和Future样式(FutureConnection)

    Delphi ActiveMQ 使用帮助

    ### Delphi ActiveMQ 使用帮助 #### 一、简介 Delphi ActiveMQ 使用帮助文档主要介绍了如何在 Delphi 开发环境中使用 HabariActiveMQClient 库与 Apache ActiveMQ 消息中间件进行交互的方法。这份文档提供了从安装...

    ActiveMQ使用入门.pdf

    【ActiveMQ使用入门】 ActiveMQ是一款基于Java的消息中间件,它是Apache基金会的开源项目,也是最早的JMS(Java消息服务)实现之一。JMS是一种标准,定义了在Java环境中访问消息中间件的接口,但并未具体实现。...

    ActiveMQ 使用Ajax 收发消息实战

    标题中的"ActiveMQ 使用Ajax 收发消息实战"指出我们将探讨如何使用ActiveMQ消息中间件与Ajax技术结合,实现Web应用程序中的异步消息传递。ActiveMQ是Apache软件基金会的一个项目,提供了一个开源的消息代理,支持...

    ActiveMQ使用教程基于SSM架构

    ActiveMQ使用教程基于SSM架构

    ActiveMQ使用Demo

    这个"ActiveMQ使用Demo"提供了一个简单的起点,帮助初学者理解和应用ActiveMQ。以下是对ActiveMQ及其相关概念的详细说明: 1. **什么是ActiveMQ?** ActiveMQ是一个强大的消息代理,它作为消息传递系统的中心节点...

    ActiveMQ使用教程

    【ActiveMQ使用教程】 ActiveMQ,作为Apache基金会的开源项目,是业界广泛使用的消息中间件,它遵循Java消息服务(JMS)1.1规范,为J2EE应用程序提供了强大的消息传递功能。JMS规范虽然已有一定历史,但在现代...

    activeMQ使用软件,以及初始化页面

    在本文中,我们将深入探讨ActiveMQ的使用、安装及其初始化页面的设置。 首先,ActiveMQ是一个高性能、可靠的分布式消息传递系统,允许应用程序之间通过消息进行异步通信。这种通信模式能够提高系统的可伸缩性和解耦...

    activeMQ使用JDBC所需要的jar包

    本主题将详细讲解在ActiveMQ中使用JDBC持久化所需的jar包,以及如何进行配置。 首先,我们要明确的是,ActiveMQ内置了一个基于KahaDB的默认持久化机制,但用户可以根据需求选择JDBC持久化。JDBC持久化需要以下关键...

    ActiveMQ的安装与使用

    配置主要涉及到端口设置,ActiveMQ使用特定端口进行管理和消息传输。管理控制台默认端口是8161,消息通讯端口默认是61616,这些可以在ActiveMQ安装目录下的jetty.xml文件中进行修改。如果需要在防火墙中打开这些端口...

    activeMQ初学使用demo

    本初学使用DEMO将带你走进ActiveMQ的世界,通过队列(Queue)和主题(Topic)两种消息模型来了解其基本用法。 1. **ActiveMQ简介**: - ActiveMQ 是Apache软件基金会的一个项目,它提供了一个跨语言、跨平台的消息...

    activemq ssl双向认证连接

    4. **连接ActiveMQ**:使用ActiveMQ的Java API或客户端库(如MQTT-Demo中的MQTT协议)建立SSL连接时,你需要指定使用SSL协议并提供必要的认证信息。例如,使用Paho MQTT Java客户端库,你可以这样设置连接参数: ```...

    ActiveMQ使用Ajax实现多人聊天室

    8. **性能优化**:根据实际需求,可能需要调整ActiveMQ的配置,如预取策略(Prefetch Policy)以平衡消息传递速度和内存使用,以及队列的持久化策略等。 总结起来,通过集成ActiveMQ和Ajax,我们可以构建一个高效、...

    mqttjs(activemq测试工具)

    本教程主要围绕`mqttjs`,一个JavaScript实现的MQTT客户端库,以及如何使用它来测试ActiveMQ服务器。`mqttjs`是一个轻量级且易于使用的库,适合在Web应用、Node.js环境中进行 MQTT 相关的开发工作。 首先,安装`...

    ActiveMQ高并发处理方案

    - **消息分发线程池**:通过设置 `org.apache.activemq.UseDedicatedTaskRunner` 为 `false`,可以让ActiveMQ使用一个线程池来处理消息分发,而不是为每个连接分配单独的线程。 - **内存配置**:确保运行ActiveMQ的...

    Java后台开发ActiveMQ使用手册.pdf

    ActiveMQ支持消息队列(Message Queue)的两种基本使用模式:点对点(Point-to-Point, P2P)模式和发布/订阅(Publish/Subscribe, Pub/Sub)模式,并且支持与Spring框架的整合模式。 ### 1. ActiveMQ的介绍 ...

    ActiveMQ消息服务器 v5.17.6.zip

    三、ActiveMQ使用指南 1. **安装与启动**:下载ActiveMQ v5.17.6的zip文件,解压后运行bin目录下的start.bat(Windows)或start.sh(Linux/Mac),启动服务器。 2. **配置**:配置文件默认为conf/activemq.xml,可...

Global site tag (gtag.js) - Google Analytics