Apache ActiveMQ is a message broker written in Java together with a full JMS client. However Apache ActiveMQ is designed to communicate over a number of protocols such asStomp and OpenWire together with supporting a number of different language specific clients.
1)从(http://activemq.apache.org/)下载apache-activemq-5.4.2-bin.zip
2)解压apache-activemq-5.4.2-bin.zip到E:\note\ActiveMQ\
3)启动E:\note\ActiveMQ\apache-activemq-5.4.2-bin\bin\activemq.bat
4) 查看E:\note\ActiveMQ\apache-activemq-5.4.2-bin\conf\activemq.xml
<transportConnectors>
<transportConnector name="openwire" uri="tcp://0.0.0.0:61616"/>
</transportConnectors>
5)启动好ActiveMQ之后,可以通过http://localhost:8161/admin来在浏览器里访问查看和管理消息
6)发送消息
import java.util.Date;
import javax.jms.Connection;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class Send {
public static void main(String[] args) throws Exception {
// Create a ConnectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
"tcp://0.0.0.0:61616");
// connectionFactory.setUseAsyncSend(true);
// Create a Connection
Connection connection = connectionFactory.createConnection();
connection.start();
// Create a Session
Session session = connection.createSession(Boolean.FALSE,
Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("t1,t2,t3");
// Create a MessageProducer from the Session to the Topic or Queue
MessageProducer producer = session.createProducer(destination);
// producer.set
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
// Create a messages
@SuppressWarnings("deprecation")
String text = "Hello world! From: " + new Date().toLocaleString();
TextMessage message = session.createTextMessage(text);
producer.send(message);
// Clean up
producer.close();
session.close();
connection.close();
}
}
启动结果:
log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).
log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.tcp.TcpTransport).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN Please initialize the log4j system properly.
7)接收消息
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.ActiveMQConnectionFactory;
public class Receive1 {
public static void main(String[] args)throws Exception {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://0.0.0.0:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(Boolean.FALSE,Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("t1,t2,t3");
MessageConsumer consumer = session.createConsumer(destination);
while (true) {
TextMessage message = (TextMessage) consumer.receive(1000);
if (null != message) {
System.out.println("1 收到消息" + message.getText());
//break;
}
}
// consumer.close();
// session.close();
// connection.close();
}
}
启动结果:
log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.WireFormatNegotiator).
log4j:WARN No appenders could be found for logger (org.apache.activemq.transport.tcp.TcpTransport).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN Please initialize the log4j system properly.
1 收到消息Hello world! From: 2012-7-12 23:47:06
1 收到消息Hello world! From: 2012-7-12 23:47:06
1 收到消息Hello world! From: 2012-7-12 23:47:06
非常感谢 http://topic.csdn.net/u/20120708/22/2e29edf2-2473-416f-8e82-cc9dfdfb324c.html 这个贴给予的启发,其中有个前辈的话非常有指向性,贴在下面,空时多看看。
|