永发信息网

ActiveMQ与Spring实现JMS的问题?

答案:1  悬赏:20  手机版
解决时间 2021-08-24 06:40
ActiveMQ5.3.2+Spring2.5
【applicationContext.xml】
<bean id="connectionFactory" 
        class="org.apache.activemq.ActiveMQConnectionFactory">  
        <property name="brokerURL" value="tcp://localhost:61616" />  
    </bean>  

    <bean id="jmsTemplate"
        class="org.springframework.jms.core.JmsTemplate">  
        <property name="connectionFactory" ref="connectionFactory" />  
        <property name="defaultDestinationName" value="cmpp" />
    </bean>
     
     
    <bean id="producer" class="com.zero.jms.msgProducer">  
        <property name="jmsTemplate" ref="jmsTemplate" />  
    </bean>  
    <bean id="messageListener" 
        class="org.springframework.jms.listener.adapter.MessageListenerAdapter">  
        <constructor-arg>  
            <bean class="com.zero.jms.msgConsumer" />  
        </constructor-arg>  
        <property name="defaultListenerMethod" value="onMessage" />  
    </bean>  
    <bean id="listenerContainer" 
        class="org.springframework.jms.listener.DefaultMessageListenerContainer">  
        <property name="connectionFactory" ref="connectionFactory" />  
        <property name="destinationName" value="cmpp" />
        <property name="messageListener" ref="messageListener" />  
    </bean>
【msgProducer.java】
public class msgProducer{
    private JmsTemplate jmsTemplate;
       public void send(final String text){
        System.out.println("发送消息:"+text);
        jmsTemplate.send(new MessageCreator(){
            public Message createMessage(Session session) throws JMSException {
                return session.createTextMessage(text);
            }
        });
    }
    public JmsTemplate getJmsTemplate() {
        return jmsTemplate;
    }  
    public void setJmsTemplate(JmsTemplate jmsTemplate) {  
        this.jmsTemplate = jmsTemplate;
    }

【msgConsumer.java】
public class msgConsumer implements MessageListener{  
    public void onMessage(Message message) {
         if (message instanceof TextMessage) {  
             TextMessage text = (TextMessage)message;        
             try{
                 System.out.println("接受消息:" + text.getText()); 
             }catch (JMSException e) {
                 e.printStackTrace();  
             }
         }  
    }  
}
【test.java】
public static void main(String[] args) {  
        ApplicationContext xt = new    ClassPathXmlApplicationContext("applicationContext.xml");  
        msgProducer producer = (msgProducer) xt.getBean("producer");
        producer.send("12");
    }

【问题】
使用test.java测试程序的时候,消息可以发送也可以接收,但是如果我发消息发的比较平凡的话,也就是连续的调用test.java,消息任然是可以发送和接收,会出现类似像系统中的缓存一样,例如发送一条消息aa(第一次成功发送与接收),连续发的话,接收到的可能为多个aa,甚至会出现很久之前所发送过的内容也会出现,如果相隔大概5到10秒钟发一次的话,就没有这样的问题,不知道是java代码错了还是spring配置错了,有请朋友们帮忙看下吧...不胜感激!
最佳答案

Thread.sleep(5000);


延时加载

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
陕州区三门峡食全食美(城村工贸楼西)地址有谁
结了婚的人梦见自己穿着婚纱
边城 秀秀 是怎样的人/
怎么才能够让老婆跟开心,快乐,幸福?
鄂城区鄂州王牌蛋糕店地址是什么,有没有知道
当月订购的套餐何时生效
分手了到现在我一直没她联系,快五个月了,明天
怎样设置游戏呢?
新县信阳锐华手机售后维修中心地址在哪里啊
我为什么找不着开心农场
第一次女孩流血吗
头痛发高烧吃什么药
延寿县哈尔滨太子电动车(延寿店)地址是什么,
洛阳哪里能买到镜系列全集?
求东之尹甸铃声
推荐资讯
洪山区武汉东湖风景区政务服务中心这个地址怎
谁知道丝路英雄要亮图标大约需要多要声望
诺基亚最新款手机什么型号?
有没有简简单单的爱情?仅仅纯粹的两个人…一
每个人都有自己的责任,而我的责任是什么?
贷款怎么还款流程,贷款还款流程 100分
梁晓诗藏头诗
有没有东莞厚街的有缘朋友
我以前玩AVA的时候,游戏中的字幕是一般般的
淘宝上钓箱哪个牌子好,如何在淘宝上选择质量
岁在是啥意思,为什么有人常说客死他乡具体是
暑假作业没做
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?