1、环境:
Windows XP
apache-activemq-5.2.0-bin.zip
2、安装
解压缩到apache-activemq-5.2.0-bin.zip到一个目录,
比如C:\apache-activemq-5.2.0
3、配置
配置就在C:\apache-activemq-5.2.0\conf目录下三个文件
activemq.xml
credentials.properties
log4j.properties
4、启动ActiveMQ
运行C:\apache-activemq-5.2.0\bin\activemq.bat
5、测试
ActiveMQ默认使用的TCP连接端口是61616,
通过查看该端口的信息可以测试ActiveMQ是否成功启动 netstat -an|find "61616"
C:\Documents and Settings\Administrator>netstat -an|find "61616"
TCP 0.0.0.0:61616 0.0.0.0:0 LISTENING
6、监控
ActiveMQ5.0版本默认启动时,启动了内置的jetty服务器,
提供一个demo应用和用于监控ActiveMQ的admin应用。
admin:http://127.0.0.1:8161/admin/
demo:http://127.0.0.1:8161/demo/
魔兽世界 --> 伟大的督军 --> 没法子服务器连续几周第一内心空虚 -->
package jms.demo01;
/*
* 消息接收者
*/
import java.util.Date;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* J2EE与JMS
* JMS是J2EE的13种核心技术规范之一,是J2EE众多应用程序组件中的重要一员。J2EE有标准的JMS API开放,以支持各个JMS应用生产厂商的产品,开源的有jbossmq,openjms,mantamq,ActiveMQ等,不过大多已停止发展; 商业的有IBM WebSphere MQ, BEA WebLogic JMS, Oracle AQ等。
* Apache ActiveMQ是众多JMS Provider中的的佼佼者,毕竟它由强大的Apache社区支持,一直保持着开发和升级,目前已经最新的版本是5.4.2。它功能强大,支持多种语言编写的客户端,符合J2EE1.4规范,支持持久化,甚至支持Ajax等等.
* JMS开发入门
*
* 环境: jdk1.5以上, eclipse for j2ee版本, ${download}/activemq5.4.2/bin/activemq.exe运行起来
* jar包: activemq-all-5.4.2.jar(官方发布里有) commons-logging-1.1.jar
* 注意,这里要求先将activemq.exe运行起来,作为JMS的Provider.其实J2EE官方发行版里面应该也带有JMS的一个Provider,相关的demo参考2
* 字符串 "tcp://primary:61616?connectionTimeout=3000" 表示一个URI,它包括了协议部分,url部分,及选项. ActiveMQ其实支持多种transport(参考2),不同的transport对应不同的URI(格式,选项参数等不同).
*
* 参考:
* Oracle-JMS部分参考http://download.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/client.html
* J2EE-JMS部分参考:http://download.oracle.com/javaee/6/tutorial/doc/bncdr.html
* JMS常见transport参考:http://whitesock.javaeye.com/blog/164933
*
* 1、下载:http://activemq.apache.org/download.html 最新Windows版本
* 2、安装
* (1) 首先配置JAVA环境变量
* JAVA_HOME=D:\Program Files\Java\jdk1.5.0
* CLASSPAHT=.;D:\Program Files\Java\jdk1.5.0\lib\tools.jar;D:\Program Files\Java\jdk1.5.0\lib\td.jar;D:\Program Files\Java\jdk1.5.0\lib
* PATH=D:\Program Files\Java\jdk1.5.0\bin;
* (2)直接解压至任意目录(例如:D:\apache-activemq-5.3.0)
* 3、启动ActiveMQ服务器:直接运行\bin\win32\activemq.bat
* 当运行成功后,界面显示: Started SelectChannelConnector@0.0.0.0:8161 即说明activemq启动成功。
* 4、打开ActiveMQ消息管理后台系统 http://localhost:8161/admin/
*
* @author ZengWenFeng
*/
public class MessageReceiver
{
public static void main(String[] args) throws Exception
{
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory();
Connection connection = connectionFactory.createConnection();
connection.start();
final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageConsumer consumer = session.createConsumer(destination);
int i = 0;
while (i < 3)
{
i++;
MapMessage message = (MapMessage) consumer.receive();
session.commit();
// TODO something....
System.out.println("收到消息:" + new Date(message.getLong("count")));
}
session.close();
connection.close();
}
}
package jms.demo01;
/*
* xcch@cnic.cn
* 消息发送者
*/
import java.util.Date;
import javax.jms.*;
import org.apache.activemq.ActiveMQConnectionFactory;
/**
* J2EE与JMS JMS是J2EE的13种核心技术规范之一,是J2EE众多应用程序组件中的重要一员。J2EE有标准的JMS API开放,以支持各个JMS应用生产厂商的产品,开源的有jbossmq,openjms,mantamq,ActiveMQ等,不过大多已停止发展; 商业的有IBM WebSphere MQ, BEA WebLogic JMS, Oracle AQ等。 Apache
* ActiveMQ是众多JMS Provider中的的佼佼者,毕竟它由强大的Apache社区支持,一直保持着开发和升级,目前已经最新的版本是5.4.2。它功能强大,支持多种语言编写的客户端,符合J2EE1.4规范,支持持久化,甚至支持Ajax等等. JMS开发入门 环境: jdk1.5以上, eclipse for j2ee版本,
* ${download}/activemq5.4.2/bin/activemq.exe运行起来 jar包: activemq-all-5.4.2.jar(官方发布里有) commons-logging-1.1.jar 注意,这里要求先将activemq.exe运行起来,作为JMS的Provider.其实J2EE官方发行版里面应该也带有JMS的一个Provider,相关的demo参考2 字符串
* "tcp://primary:61616?connectionTimeout=3000" 表示一个URI,它包括了协议部分,url部分,及选项. ActiveMQ其实支持多种transport(参考2),不同的transport对应不同的URI(格式,选项参数等不同). 参考:
* Oracle-JMS部分参考http://download.oracle.com/javaee/1.3/jms/tutorial/1_3_1-fcs/doc/client.html J2EE-JMS部分参考:http://download.oracle.com/javaee/6/tutorial/doc/bncdr.html
* JMS常见transport参考:http://whitesock.javaeye.com/blog/164933
*
* @author ZengWenFeng
*/
public class MessageSender
{
public static void main(String[] args) throws Exception
{
//ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("failover:(tcp://primary:61616)?timeout=3000&startupMaxReconnectAttempts=1&maxReconnectAttempts=0");//failover:失效转移
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://primary:61616?connectionTimeout=3000");
Connection connection = connectionFactory.createConnection();
//connection.setExceptionListener(new MyJmsException());
connection.start();
Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageProducer producer = session.createProducer(destination);
for (int i = 0; i < 3; i++)
{
MapMessage message = session.createMapMessage();
message.setLong("count", new Date().getTime());
Thread.sleep(1000);
//通过消息生产者发出消息
producer.send(message);
}
session.commit();
session.close();
connection.close();
}
}