java项目ActiveMQ练习

一、去官网下载activeMQ


二、解压缩到bin目录下


三、创建java项目


四、引入jar


五、创建连接

private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
private static final String PASWORD = ActiveMQConnection.DEFAULT_PASSWORD;
private static final String BROKERURL = ActiveMQConnection.DEFAULT_BROKER_URL;
// 连接工厂
private static ConnectionFactory connectionFactory;
// 连接
private static Connection connection;
// 会话 接受或者发送消息的线程
private static Session session;
// 接受或发送消息的目的地
private static Destination destination;
// 消息生产者
private static MessageProducer messageProducer;


public static void main(String[] args) {


try {
// 创建连接工厂
connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASWORD, BROKERURL);
// 创建连接
connection = connectionFactory.createConnection();
connection.start();
//
session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);
// 创建消息队列
destination = session.createQueue("FastQueue4");
messageProducer = session.createProducer(destination);// 创建消息生产者
SendMessageProducer(session, messageProducer);
session.commit();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(connection!=null){
try {
connection.close();
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}


/**
* 发送消息

* @param session
* @param message
* @throws JMSException
*/
private static void SendMessageProducer(Session session, MessageProducer message) throws JMSException {
for (int i = 0; i < 10; i++) {
TextMessage msg = session.createTextMessage("ActiceMQ 发送的消息" + i);
System.err.println("ActiceMQ 发送的消息" + i);
message.send(msg);
}

}

六 、创建接收消息

/**
 * 接收消息
 * @author Administrator
 *
 */
public class TestConsumer {


private static final String USERNAME = ActiveMQConnection.DEFAULT_USER;
private static final String PASWORD = ActiveMQConnection.DEFAULT_PASSWORD;
private static final String BROKERURL = ActiveMQConnection.DEFAULT_BROKER_URL;
// 连接工厂
private static ConnectionFactory connectionFactory;
// 连接
private static Connection connection;
// 会话 接受或者发送消息的线程
private static Session session;
// 接受或发送消息的目的地
private static Destination destination;
//接收消息
private static MessageConsumer messageConsumer;

public static void main(String[] args) {
connectionFactory = new ActiveMQConnectionFactory(USERNAME, PASWORD, BROKERURL);
try {
connection=connectionFactory.createConnection();
connection.start();
session=connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
destination =session.createQueue("FastQueue3");
messageConsumer=session.createConsumer(destination);
while (true) {
TextMessage message=(TextMessage) messageConsumer.receive(100000);
if (message!=null) {
System.err.println(message.getText());
}else {
break;
}
}
connection.close();
} catch (Exception e) {
e.printStackTrace();
// TODO: handle exception
}
}

}

还可以已订阅方式 接收


1、创建监听 实现MessageListener

/**
 * 使用监听得到消息
 * @author Administrator
 *
 */
public class Listener implements MessageListener{


@Override
public void onMessage(Message message) {
// TODO Auto-generated method stub
try {
System.err.println("使用监听得到消息 : "+((TextMessage)message).getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

2.修改类方法

将destination =session.createQueue("FastQueue3");方法 修改为 destination=session.createTopic("TestSessionQueue");

将接收消息类的destination =session.createQueue("FastQueue3"); 修改为 session.createTopic("TestSessionQueue");

运行代码 搞定


猜你喜欢

转载自blog.csdn.net/u014341567/article/details/80714949
今日推荐