activemq学习

深入浅出JMS(一)--JMS基本概念

深入浅出JMS(二)--ActiveMQ简单介绍以及安装

深入浅出JMS(三)--ActiveMQ简单的HelloWorld实例

深入浅出JMS(四)--Spring和ActiveMQ整合的完整实例

已经写的很详细了。

activemq最新版5.15.3下载地址  : http://activemq.apache.org/activemq-5153-release.html

注意:如果要与spring整合,使用5.11.2版本,因为之后的版本自带spring接口,但是没有实现接口,会导致jar包冲突!!!错误如下:



在windows/linux(需安装好jdk)下,解压缩后,启动bin目录下的activemq,


在浏览器中输入:http://localhost:8161/

即可访问后台。


点击链接,输入账号密码,都是admin/admin,进入欢迎页


代码测试:

 /**
     * 点到点形式发送消息
     */
    @Test
    public void testQueueProduce() throws JMSException {

        //1.创建一个连接工厂对象,需要指定服务的ip及端口
        ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.1.106:61616");
        //2.使用工厂对象创建一个Connection对象
        Connection connection = factory.createConnection();
        //3.开启连接,调用Connection对象的start方法。
        connection.start();
        //4.创建一个Session对象
        //第一个参数,是否开启事务,一般不开启事务,如果true开启事务,第二个参数无意义
        //第二个参数,应答模式,自动应答或手动应答。一般自动应答
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.使用Session对象创建一个Destination对象,两种形式queue,topic,现在使用queue
        Queue queue = session.createQueue("test-queue");
        //6.使用session对象创建一个Producer对象。
        MessageProducer producer = session.createProducer(queue);
        //7.创建一个Message对象,可以使用TextMessage。
//        TextMessage textMessage = new ActiveMQTextMessage();
//        textMessage.setText("Hello Activemq !");
        TextMessage textMessage = session.createTextMessage("Hello Activemq !");
        //8.发送消息
        producer.send(textMessage);
        //9.关闭资源
        producer.close();
        session.close();
        connection.close();
    }
    @Test
    public void testQueueConsumer() throws JMSException, IOException {

        //1.创建一个连接工厂对象,需要指定服务的ip及端口
        ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.1.106:61616");

        //2.使用工厂对象创建一个Connection对象
        Connection connection = factory.createConnection();

        //3.开启连接,调用Connection对象的start方法。
        connection.start();
        //4.创建一个Session对象
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //5.使用Session对象创建一个Destination对象,两种形式queue,topic,现在使用queue
        Queue queue = session.createQueue("test-queue");
        //6.使用session对象创建一个consumer对象。
        MessageConsumer consumer = session.createConsumer(queue);
        //7.创建消息监听器,接受消息
        consumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                //打印
                TextMessage textMessage = (TextMessage) message;
                String text;
                try {
                    text = textMessage.getText();
                    System.out.println(text);
                } catch (JMSException e) {
                    e.printStackTrace();
                }

            }
        });
        //8.等待接受消息
        System.in.read();
        //9.释放资源
        consumer.close();
        session.close();
        connection.close();
    }



@Test
    public void testTopicProducer() throws JMSException {

        //连接工厂
        ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.1.106:61616");
        //创建连接
        Connection connection = factory.createConnection();
        //开启连接
        connection.start();
        //创建session
        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
        //使用session对象创建Destination对象,有queue和topic,现在使用topic
        Topic topic = session.createTopic("test-topic");
        //使用session创建生产者producer
        MessageProducer producer = session.createProducer(topic);
        //创建message
        TextMessage textMessage = session.createTextMessage("hello activemq !");
        //发送
        producer.send(textMessage);
        //关闭资源
        producer.close();
        session.close();
        connection.close();
    }
@Test
    public void testTopicConsumer() throws JMSException, IOException {

        ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://192.168.1.106:61616");

        Connection connection = factory.createConnection();

        connection.start();

        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        Topic topic = session.createTopic("test-topic");

        MessageConsumer consumer = session.createConsumer(topic);


        consumer.setMessageListener(new MessageListener() {
            @Override
            public void onMessage(Message message) {
                TextMessage textMessage = (TextMessage) message;
                String text;
                try {
                    text = textMessage.getText();
                    System.out.println(text);
                } catch (JMSException e) {
                    e.printStackTrace();
                }
            }
        });

        System.in.read();

        consumer.close();
        session.close();
        connection.close();
    }




猜你喜欢

转载自blog.csdn.net/littlegregory/article/details/80248069