分布式-信息方式-JMS Queue示例

代码

package test.mq.helloword;

 

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
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) throws JMSException, InterruptedException {
        ConnectionFactory   ConnectionFactory=new ActiveMQConnectionFactory(
                "tcp://localhost:61616"
                );
        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);
     
        for(int i=0;i<3;i++){
//            TextMessage message=session.createTextMessage("message----"+i);
//            //Thread.sleep(1000);  
//            Producer.send(message);
             MapMessage Message=session.createMapMessage();
             Message.setStringProperty("extra"+i, "okok");
             Message.setString("message"+i, "my map---->"+i);
             Producer.send(Message);
        }
         session.commit();
         session.close();
         connection.close();    
    }
}
package test.mq.helloword;

import java.util.Enumeration;

import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MapMessage;
import javax.jms.MessageConsumer;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;

import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.broker.ConsumerBrokerExchange;

public class Receiver {
    
    public static void main(String[] args) throws JMSException {
        ConnectionFactory   ConnectionFactory=new ActiveMQConnectionFactory(
                "tcp://localhost:61616"
                );
        Connection connection=ConnectionFactory.createConnection();
        connection.start();
        Enumeration names=connection.getMetaData().getJMSXPropertyNames();
        while(names.hasMoreElements()){
            String name=(String) names.nextElement();
            System.out.println("jmsx name==="+name);
        }
        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){
            
             MapMessage msg=(MapMessage) Consumer.receive();
             session.commit();
             System.out.println("接收信息:"+msg.getString("message"+i)+",property=="+msg.getStringProperty("extra"+i));
             i++;
         }
         
        session.close();
        connection.close();
    
    }
}
原文地址:https://www.cnblogs.com/caoyingjielxq/p/9334319.html