1. 下载ActiveMQ ActiveMQ download
2. 启动ActiveMQ
run *\activemq.bat
3. 测试
ActiveMQ默认使用的是TCP连接端口61616,所以我们可以查看该端口的使用情况,以便测试ActiveMQ是否成功启动
C:\Documents and Settings\Administrator>netstat -an|find "61616"
TCP 0.0.0.0:61616 0.0.0.0:0 LISTENING
C:\Documents and Settings\Administrator>netstat -an|find "61616"
TCP 0.0.0.0:61616 0.0.0.0:0 LISTENING
C:\Documents and Settings\Administrator>netstat -an|find "61616"
TCP 0.0.0.0:61616 0.0.0.0:0 LISTENING
TCP 0.0.0.0:61616 0.0.0.0:0 LISTENING
4. 监控ActiveMQ
ActiveMQ5.0版本默认启动时,启动了内置的jetty服务器,提供一个demo应用和用于监控ActiveMQ的admin应用。
- admin:http://127.0.0.1:8161/admin/
- demo: http://127.0.0.1:8161/demo/
5. java code
- JmsSender
package com.chbai.test;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* JmsSender
* @author chbai
* This is first test for the JMS sender
*/
public class JmsSender {
public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
try {
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
sendMsg(session,producer);
session.commit();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
private static void sendMsg(Session session, MessageProducer producer) throws JMSException {
TextMessage message = session.createTextMessage("Hello ActiveMQ!");
producer.send(message);
System.out.println("send ok!");
}
}
JmsReceiver
package com.chbai.test;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* JmsReceiver
* @author chbai
* This is first test for the jms receiver
*/
public class JmsReceiver {
public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
Connection connection = null;
Session session = null;
try {
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);
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("recieve msg: " + message.getText());
}
else{
break;
}
}
session.close();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}
package com.chbai.test;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* JmsSender
* @author chbai
* This is first test for the JMS sender
*/
public class JmsSender {
public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
try {
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("my-queue");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
sendMsg(session,producer);
session.commit();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
private static void sendMsg(Session session, MessageProducer producer) throws JMSException {
TextMessage message = session.createTextMessage("Hello ActiveMQ!");
producer.send(message);
System.out.println("send ok!");
}
}
JmsReceiver
package com.chbai.test;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
/**
* JmsReceiver
* @author chbai
* This is first test for the jms receiver
*/
public class JmsReceiver {
public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD,
"tcp://127.0.0.1:61616");
Connection connection = null;
Session session = null;
try {
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(Boolean.TRUE,Session.AUTO_ACKNOWLEDGE);
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("recieve msg: " + message.getText());
}
else{
break;
}
}
session.close();
connection.close();
} catch (JMSException e) {
e.printStackTrace();
}
}
}