您的位置:首页 > 编程语言 > Java开发

spring activeMQ 整合(一): 一个简单的demo,测试消息的发送与接收

2017-08-02 10:55 846 查看


环境:

     windows环境下: spring 3.2.8    
、Tomcat 7    、JDK 1.6  、 ActiveMQ 5.9.0  


项目目录结构:

          


applicationContext.xml

[html] view
plain copy

<!--创建连接工厂 -->  

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">  

    <property name="brokerURL" value="tcp://localhost:61616"></property>  

</bean>  

  

  

<!-- 声明ActiveMQ消息目标,目标可以是一个队列,也可以是一个主题ActiveMQTopic -->  

<bean id="destinationOne" class="org.apache.activemq.command.ActiveMQQueue">  

    <constructor-arg index="0" value="testQueOne"></constructor-arg>  

</bean>  

  

  

<!-- 设置 消息目的地 start -->  

<bean id="jmsTemplateOne" class="org.springframework.jms.core.JmsTemplate">  

    <property name="connectionFactory" ref="connectionFactory"></property>  

    <property name="defaultDestination" ref="destinationOne"></property>  

    <property name="receiveTimeout" value="6000"></property>  

</bean>  

<!-- 设置 消息目的地 end -->  

  

<!-- 配置生产者 start -->  

<bean id="senderOne" class="com.dly.avtivemqtest.SenderOne">  

    <property name="jmsTemplateOne" ref="jmsTemplateOne"></property>  

</bean>  

<!-- 配置生产者 end -->  

  

<!-- 配置消费者 start -->  

<bean id="receiverOne" class="com.dly.avtivemqtest.ReceiverOne">  

     <!-- <property name="jmsTemplate" ref="jmsTemplate"></property> -->  

</bean>  

   <!-- 配置消费者 end -->  

     

<!-- 消息监听器 -->  

<bean id="consumerMessageListenerOfOne" class="com.dly.avtivemqtest.ReceiverOne" />  

  

<!-- 消息监听容器 消息接收监听器用于异步接收消息 -->  

<bean id="jmsContainerOne" class="org.springframework.jms.listener.DefaultMessageListenerContainer">  

    <property name="connectionFactory" ref="connectionFactory" />  

    <property name="destination" ref="destinationOne" />  

    <property name="messageListener" ref="consumerMessageListenerOfOne" />  

</bean>  

lt;/beans>  

SenderOne.java

[html] view
plain copy

public class SenderOne {  

    private JmsTemplate jmsTemplateOne;  

  

    public JmsTemplate getJmsTemplateOne() {  

        return jmsTemplateOne;  

    }  

  

    public void setJmsTemplateOne(JmsTemplate jmsTemplateOne) {  

        this.jmsTemplateOne = jmsTemplateOne;  

    }  

      

//测试的  

    public void sendInfo(final String messageRecord,final String flag) {  

        jmsTemplateOne.send(new MessageCreator() {  

            public Message createMessage(Session session) throws JMSException {  

                TextMessage message = session.createTextMessage();  

                return message;  

            }  

        });  

    }  

}  

ReceiverOne.java

[html] view
plain copy

public class ReceiverOne  implements MessageListener {    

    //测试方法  

      public void onMessage(Message message, Session session) {    

  

            //这里我们知道生产者发送的就是一个纯文本消息,所以这里可以直接进行强制转换    

          TextMessage textMsg = (TextMessage) message;  

            try {  

                String endStr = textMsg.getText();  

                Integer endInt = Integer.parseInt(endStr);  

                System.out.println("消息:==="+endInt);  

            } catch (Exception e) {    

                e.printStackTrace();  

                System.out.println("异常信息是:===:" + e.getMessage());  

            }  

        }  

  

}  

JMSTest.java

[html] view
plain copy

public class JMSTest {  

    public static void main(String[] args) {  

          

        ApplicationContext context = new ClassPathXmlApplicationContext("resources/applicationContext.xml");  

        SenderOne sender = (SenderOne) context.getBean("senderOne");  

        sender.sendInfo("10","2");  

    }  

}  

运行JMSTest的结果:

      


看到控制台答应出来的 2 ,就说明  这个消息是发送成功   并且能,成功接收的,说明我们的topic消息的发送与接收是成功的。

原文地址:http://blog.csdn.net/dly1580854879/article/details/68488003
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: