独立消费者(SpringJMS)在ActiveMQ上创建了另一个队列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了独立消费者(SpringJMS)在ActiveMQ上创建了另一个队列相关的知识,希望对你有一定的参考价值。

我创建了一个简单的独立消费者,尝试使用ActiveMQ上的4条消息。但是当我启动应用程序时,它创建了另一个具有相同名称的队列,如下图所示:

enter image description here

我的项目结构如下所示:

enter image description here

类中的代码如下所示:

class FebMessageConsumer

package com.consumer.messages.febMessageConsumer;

    import org.springframework.jms.annotation.JmsListener;
    import org.springframework.stereotype.Component;

    @Component
    public class FebMessageConsumer 

        @JmsListener(destination = "CDD Feb 21 Queue")
        ///@JmsListener
        public void processFebMessage(String message) 

            System.out.println("Message Retrieved is:" +message);


        

    

class Feb MessageConsumer Application

package com.consumer.messages.febMessageConsumer;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.jms.annotation.EnableJms;

@SpringBootApplication
@EnableJms
public class FebMessageConsumerApplication 

    public static void main(String[] args) 
        SpringApplication.run(FebMessageConsumerApplication.class, args);
    


1)上面的代码有什么问题?

2)一旦我开始工作,我计划将它作为WAR部署到Apache Tomcat 8.5。就像我部署应用程序或将应用程序作为Java应用程序启动一样,它会逐个消耗所有消息吗?或者,当我启动应用程序时,一次只会消耗一条消息,然后我将不得不停止应用程序,然后再次开始使用下一条消息?

如果需要参考,这里是压缩项目的Google Drive Link

答案

现有队列名称包括引号。

使用@JmsListener(destination = "\"CDD Feb 21 Queue\"")

它将不断接收消息。

以上是关于独立消费者(SpringJMS)在ActiveMQ上创建了另一个队列的主要内容,如果未能解决你的问题,请参考以下文章

对于独立应用程序(对于 Spring JMS),Java main 方法应该是啥?

Spring JMS(ActiveMQ) 延迟消息传递

在Spring下集成ActiveMQ

ActiveMQ保护队列

ActiveMQ在Center OS7上的安装以及在windows上访问activemq

ActiveMQ结合Spring收发消息