- 浏览: 1011306 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
Hello ActiveMQ!
下面是ActiveMQ5.2的一个最简单例子!
环境还是apache-activemq-5.2.0-bin.zip,需要注意的是,开发时候,要将apache-activemq-
5.2.0-bin.zip解压缩后里面的activemq-all-5.2.0.jar包加入到classpath下面,这个包包含了所有jms接口
api的实现。
import
org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 消息的生产者(发送者)
*
* @author leizhimin 2009-8-12 11:41:20
*/
public class JmsSender {
public static void main(String[] args) throws JMSException {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://192.168.14.117:61616");
//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("");
}
}
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 消息的生产者(发送者)
*
* @author leizhimin 2009-8-12 11:41:20
*/
public class JmsSender {
public static void main(String[] args) throws JMSException {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://192.168.14.117:61616");
//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("");
}
}
import
org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 消息的消费者(接受者)
*
* @author leizhimin 2009-8-12 11:41:33
*/
public class JmsReceiver {
public static void main(String[] args) throws JMSException {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://192.168.14.117:61616");
//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();
}
}
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* 消息的消费者(接受者)
*
* @author leizhimin 2009-8-12 11:41:33
*/
public class JmsReceiver {
public static void main(String[] args) throws JMSException {
// ConnectionFactory :连接工厂,JMS 用它创建连接
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://192.168.14.117:61616");
//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();
}
}
启动ActiveMQ,然后开始执行:
先运行发送者,连续运行了三次,最后一次控制台输出:
Process finished with exit code 0
后运行接受者,输出结果:
收到消息Hello ActiveMQ!
收到消息Hello ActiveMQ!
收到消息Hello ActiveMQ!
Process finished with exit code 0
收到消息Hello ActiveMQ!
收到消息Hello ActiveMQ!
Process finished with exit code 0
注意:
其中的端口61616是ActiveMQ默认的配置,在activemq.xml中,
<!-- The transport connectors ActiveMQ will listen to
-->
< transportConnectors >
< transportConnector name ="openwire" uri ="tcp://localhost:61616" discoveryUri ="multicast://default" />
< transportConnector name ="ssl" uri ="ssl://localhost:61617" />
< transportConnector name ="stomp" uri ="stomp://localhost:61613" />
< transportConnector name ="xmpp" uri ="xmpp://localhost:61222" />
</ transportConnectors >
< transportConnectors >
< transportConnector name ="openwire" uri ="tcp://localhost:61616" discoveryUri ="multicast://default" />
< transportConnector name ="ssl" uri ="ssl://localhost:61617" />
< transportConnector name ="stomp" uri ="stomp://localhost:61613" />
< transportConnector name ="xmpp" uri ="xmpp://localhost:61222" />
</ transportConnectors >
,建议不要改动,都用这个端口多好,就像ftp都用21端口,也没错。
这是官方的HelloWorld例子,不过看着不顺眼:
----------------------
推荐一些文章:
发表评论
-
Advanced Message Queuing Protocol ( 3 ) 逻辑模型
2011-05-07 22:04 1168Sessions 建立在不同容器中的两个节点的链接必 ... -
Advanced Message Queuing Protocol ( 2 ) 逻辑模型
2011-05-07 22:04 967Nodes and Links 一个AMQP的网络包 ... -
Advanced Message Queuing Protocol ( 1 ) 概述
2011-05-07 22:03 1201The Advanced Message Queuing ... -
Apache Qpid (1) -- build
2011-05-07 22:02 1939http://qpid.apache.org/index.h ... -
ActiveMQ技术预研报告【转】
2011-04-22 14:44 1907ActiveMQ技术预研报告 研究部朱懋柱 1.文 ... -
ActiveMQ与MSMQ的异同【转】
2011-04-22 14:14 1910.NET下发送和接收ActiveMQ A:下载Act ... -
ActiveMQ在C#中的应用
2011-04-21 16:18 1195ActiveMQ 是个好东东,不必多说。ActiveM ... -
ActiveMQ实战之 Queue点对点消息【转】
2011-04-18 23:15 1206对于此类消息,其实就是指使用JMS中的发P2P(点对点)消息模 ... -
ActiveMQ实战之 Topic发布订阅消息【转】
2011-04-18 23:14 1189对于此类消息,其实就是指使用JMS中的发布订阅消息模型的消息, ... -
ActiveMQ实战(4):JMS的安全性【转】
2011-04-18 22:52 1227对于JMS服务的安全控制,ActiveMQ提供两种方式:简单授 ... -
ActiveMQ实战(3):Web控制台的安全性【转】
2011-04-18 22:52 1334安装好ActiveMQ后,其默认没有任何安全控制,任何人都可以 ... -
ActiveMQ实战(2):测试其是否正常工作【转】
2011-04-18 22:51 1201既然ActiveMQ安装好了并启动成功,接下来我们就编写一个测 ... -
ActiveMQ实战(1):安装与运行【转】
2011-04-18 22:45 1779ActiveMQ的项目主页:http://activemq.a ... -
[转] JMS开源比较
2011-03-30 23:46 1181Java开源JMS消息中间件 ... -
activemq5.2发送和接收BlobMessage简单实例
2011-03-29 23:45 1164package com.work.activemq ... -
ActiveMQ学习笔记----ActiveMQ和JBossMQ性能对比测试代码
2011-03-29 23:44 1221本文描述了对ActiveMQ进行性能测试的代码。性能测试用 ... -
ActiveMQ 实例
2011-03-29 23:21 10372009-06-24 ProducerTool.java ... -
activemq持久化配置,设置为主从模式(带复制的主从模式,应用mysql数据库)
2011-03-29 09:12 1819activemq持久化配置,设置为主从模式(带复制的主从模 ... -
ActiveMQ持久化消息的三种方式
2011-03-29 09:11 13631:前言 这一段给公司开发消息总线有机会研究A ... -
什么是JMS(Java消息服务)
2011-03-28 19:28 898在不同系统之间交换信息的一大障碍是如何在精确交换和格式化数据方 ...
相关推荐
TextMessage message = session.createTextMessage("Hello ActiveMQ"); producer.send(message); session.close(); connection.close(); } } ``` 这个示例演示了如何使用ActiveMQ连接到服务器,创建一个消息...
在这个"apache activeMQ之初体验(helloworld)"中,我们将探索如何使用ActiveMQ进行基本的消息发布与订阅。 在消息中间件中,"Hello World"程序通常用于演示最基本的消息传递概念。ActiveMQ的"Hello World"程序主要...
在本文中,我们将深入探讨如何使用ActiveMQ创建一个基本的"HelloWorld"实例,以便于初学者理解消息队列的工作原理。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了多种消息协议,如OpenWire、AMQP、...
TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); ``` 在“MQClient”文件中,我们可以期待看到具体的客户端代码示例,这些示例可能包括连接到ActiveMQ服务器、创建...
jmsTemplate.convertAndSend(destination, "Hello, ActiveMQ!"); ``` 接收消息: ```java @JmsListener(destination = "MyQueue") public void receiveMessage(String message) { System.out.println(...
client.publish('test/topic', 'Hello, MQTT World!'); }); // 接收消息事件 client.on('message', function (topic, message) { console.log(`Received message from topic ${topic}: ${message.toString()}`); ...
【ActiveMQ 安装手册说明】ActiveMQ 是一个开源的消息代理服务器,它是Apache软件基金会的顶级项目,基于Java消息服务(JMS)标准,用于在分布式系统中传递消息。本手册将详细介绍在Linux环境下如何安装和运行...
TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); // 关闭资源 producer.close(); session.close(); connection.close(); ``` 3. **创建消费者** - 在...
var message = session.CreateTextMessage("Hello, ActiveMQ!"); ``` 8. 发送消息:使用生产者将消息发送到目的地。 ```csharp producer.Send(destination, message); ``` 9. 创建消费者:创建一个消息消费者,...
std::auto_ptr<cms::TextMessage> message(session->createTextMessage("Hello, World!")); producer->send(message.release()); std::auto_ptr<cms::Message> received = consumer->receive(); ``` 5. **构建...
IMessage message = session.CreateTextMessage("Hello, ActiveMQ!"); producer.Send(message); ``` 4. **消息订阅(Subscribe)** 创建消费者订阅主题,当有新消息到达时,会触发消息处理回调。 ```csharp ...
Message message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); ``` 对于消费者,注册一个消息监听器来接收消息: ```java consumer.setMessageListener(new MessageListener() { ...
TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer.send(message); ``` 对于消费者端,同样需要创建连接工厂、连接、session,但这次我们会创建一个MessageConsumer...
body := []byte("Hello, ActiveMQ!") conn.Send("/queue/test", stomp.Headers{}, body) ``` 6. **处理错误** 在上述示例中,我们对可能出现的错误进行了处理,如使用`panic(err)`展示错误信息。在实际应用中,...
TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer.send(message); ``` 对于JavaScript,ActiveMQ提供了StompWebsocket库,使得我们可以通过WebSocket协议与ActiveMQ...
TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer.send(message); System.out.println("消息已发送"); // 关闭资源 producer.close(); session.close(); ...
ITextMessage message = session.CreateTextMessage("Hello, ActiveMQ!"); // 发送消息到队列 producer.Send(message); // 关闭资源 producer.Close(); session.Close(); connection.Stop(); connection....
qt5.8 msvc2015 加载activemq 成功自发自首,编写了模块,可以自行下载,activemq里面的dll,也都存在, 调用方法 CSpiderPluginAMq::GetInstance()->InitNetwork(); CSpiderPluginAMq::GetInstance()->...
cms::TextMessage* message = session->createTextMessage("Hello, ActiveMQ!"); // 发送消息 producer->send(message); // 创建消费者 cms::MessageConsumer* consumer = session->createConsumer...
TextMessage message = session.createTextMessage("Hello, ActiveMQ!"); producer.send(message); session.close(); connection.close(); } } ``` ### 4. Java 客户端实现 客户端则用于订阅主题或队列,并...