JMS 中间件:activeMQ, JMS 入门

JMS入门,使用activeMQ 发送,接收消息。
首先,下载 apache-activemq-5.4.0。http://activemq.apache.org/download.html
解压,然后双击 bin/activemq.bat。
把 activemq-all-5.3.0.jar 加入 classpath.

构建Sender.java 和Receiver.java :

import java.util.Date;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;

public class Sender {

 public static void main(String[] args){
    try{
  ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(); 
   
     Connection connection = connectionFactory.createConnection(); 
     connection.start(); 
  
     Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); 
     Destination destination = session.createQueue("queue"); 
  
     MessageProducer producer = session.createProducer(destination); 
     System.out.println("init");
     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(); 
    }
    catch(Exception e){
     
    }
 }
}


接收者:

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;

public class Receiver {

 public static void main(String[] args) {
 try{
  ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(); 
   
     Connection connection = connectionFactory.createConnection(); 
     connection.start(); 
  
     final Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); 
     Destination destination = session.createQueue("queue"); 
  
     MessageConsumer consumer = session.createConsumer(destination); 
     /*//listener 方式
     consumer.setMessageListener(new MessageListener() {
 
         public void onMessage(Message msg) {
             MapMessage message = (MapMessage) msg;
             //TODO something....
             System.out.println(" 收到消息:" + new Date(message.getLong("count")));
             session.commit();
         }
 
     });
     Thread.sleep(30000);
     */ 
     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(); 
 }
 catch(Exception e){
  
 }
 }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值