刚刚接触ActiveMQ,遇到一个问题现在我写了一个消息生产者,一个消息消费者如果把消息生产者和消息这单独保存为两个类执行,也就是消息生产者类中有生产者对象的定义和消息的执行,消费者中有消费者对象的定义和执行,能够顺利执行消息的发送和接受,同时入队,出队现在我只在消息生产者和消息消费者类中定义类体,在TEST类中,定义消费者和生产者对象,然后执行消息的发送和接受,Console中提示消息执行了发送和接受。如下所示:
Console执行如下:
http://localhost:8161/admin/queues.jsp页面吧显示如下:
什么意思?不太懂,大神指点,另外消息生产者是不是讲消息发送在队列中,然后消费者从队列中去取?activemq消息队列

解决方案 »

  1.   

    package org.ygy.mq.lesson02;import java.util.Date;import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.MessageProducer;
    import javax.jms.Session;
    import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class SimpleQueueProducer {

    public void produce() throws Exception {
    ConnectionFactory factory = new ActiveMQConnectionFactory();
    Connection connection = factory.createConnection();

    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Destination destination = session.createQueue("queue_lesson");


    MessageProducer producer = session.createProducer(destination);
    for(int i=0; i<3; i++ ) {
    TextMessage message = session.createTextMessage(new Date() + " ");
    producer.send(message);

    Thread.sleep(1000);
    }


    connection.close();
    }

    }package org.ygy.mq.lesson02;import javax.jms.Connection;
    import javax.jms.ConnectionFactory;
    import javax.jms.Destination;
    import javax.jms.JMSException;
    import javax.jms.Message;
    import javax.jms.MessageConsumer;
    import javax.jms.MessageListener;
    import javax.jms.Session;
    import javax.jms.TextMessage;import org.apache.activemq.ActiveMQConnectionFactory;public class SimpleQueueConsumer implements MessageListener { @Override
    public void onMessage(Message message) {
    if(message instanceof TextMessage) {
    try {
    TextMessage textMessage = (TextMessage)message;
    System.out.println("Ha,I've got " + textMessage.getText());
    } catch (JMSException e) {
    e.printStackTrace();
    }
    }
    }

    public void consume() throws Exception {
    ConnectionFactory factory = new ActiveMQConnectionFactory();
    Connection connection = factory.createConnection();

    connection.start();

    Session session = connection.createSession(false , Session.AUTO_ACKNOWLEDGE);
    Destination destination = session.createQueue("queue_lesson");

    MessageConsumer consumer = session.createConsumer(destination);
    consumer.setMessageListener(new SimpleQueueConsumer());
    }

    }package org.ygy.mq.lesson02;public class Client {
    public static void main(String[] args) throws Exception {
    new SimpleQueueProducer().produce();

    new SimpleQueueConsumer().consume();
    }
    }
      

  2.   


    http://blog.csdn.net/yang382197207/article/details/12995185
      

  3.   


    我的session设置问题,刚刚接触,不知道里面属性值什么意思,真是感谢你了,麻烦问一下,这些API上哪查询呢
      

  4.   

    http://docs.oracle.com/javaee/1.4/api/javax/jms/package-summary.html
    这个看一下JMS的API