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

标签 java spring-boot spring-jms

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

enter image description here

我的项目结构如下所示:

enter image description here

类中的代码如下所示:

类 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);


        }

    }

类 FebMessageConsumerApplication

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 Application的形式启动应用的时候,它会一条一条的消费掉所有的消息?或者当我启动应用程序时,一次只会使用一条消息,然后我必须停止应用程序然后重新开始使用下一条消息?

这是一个 Google Drive Link到压缩项目以备引用。

最佳答案

现有队列名称包含引号。

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

它会不断地一条一条地接收消息。

关于java - 独立消费者 (SpringJMS) 在 ActiveMQ 上创建了另一个队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54830329/

相关文章:

java - 我可以使用java中的套接字连接2台计算机吗?

Java Spring启动 Controller @RequestParam给出错误 "Required String parameter '名称'不存在”

java - 如何从 Spring Listener 获取消息 ID

java - Spring Bean 验证给出 ConstraintDeclarationException

jms - 使用和不使用 Spring JMS 的 AUTO_ACKNOWLEDGEMENT 模式之间的区别

java - 是否可以从另一个应用程序(在单独的进程中启动)连接到 spring boot 嵌入式 ActiveMQ 实例?

java - 如何在JPQL中重写where子查询条件

Java Wildfly-Swarm : How to use JDBC with SQL Server (T-SQL)

java - 多线程环境中的基准测试

java - Spring 带注释的 Controller 可以工作,但路由器/处理程序方法似乎无法从 *ServerRequest* 检索 *Mono<>*