Java 通配符路由在ActiveMQ Artemis中不起作用

Java 通配符路由在ActiveMQ Artemis中不起作用,java,spring,jms,activemq-artemis,Java,Spring,Jms,Activemq Artemis,我使用ApacheArtemis作为消息总线,使用JMS侦听消息并将消息发送到消息总线。我有一个用例,在这个用例中,我想要监听与模式匹配的所有队列(例如,主题以xxxx开头)。根据我所探索的,我们可以使用通配符路由来实现这一点。 我已经在broker.xml中添加了以下内容 <wildcard-addresses> <routing-enabled>true</routing-enabled> </wildcard-addresses>

我使用ApacheArtemis作为消息总线,使用JMS侦听消息并将消息发送到消息总线。我有一个用例,在这个用例中,我想要监听与模式匹配的所有队列(例如,主题以xxxx开头)。根据我所探索的,我们可以使用通配符路由来实现这一点。

我已经在broker.xml中添加了以下内容

<wildcard-addresses>
    <routing-enabled>true</routing-enabled>
</wildcard-addresses>
下面是我的侦听器,它应该侦听以地址开头的所有队列。

@Component
public class Consumer { 

    @JmsListener(destination = "address.>")
    public void receive(Message message){
        if(message.getPayload() instanceof String){
            System.out.println("Recieved Message: " + message.getPayload().toString());
        }else {
            System.err.println("Message Type Unkown !");
        }
    }
}

但是我无法接收我们从发送方发送到接收方代码的消息。有人能帮我吗?

您在问题中链接的文档是针对ActiveMQ 5.x的,而不是针对ActiveMQ Artemis的。通配符的ActiveMQ Artemis文档是

消费者的问题是使用了错误的语法。它正在使用
地址。>
。您可以更改Artemis中的通配符语法配置,例如:


真的

或者您可以使用默认Artemis配置中功能等效的语法,即
地址。35;

您已经禁用了路由,并且您想知道为什么它不工作<代码>错误对不起,我在问题中犯了错误,它是真的
@Component
public class Consumer { 

    @JmsListener(destination = "address.>")
    public void receive(Message message){
        if(message.getPayload() instanceof String){
            System.out.println("Recieved Message: " + message.getPayload().toString());
        }else {
            System.err.println("Message Type Unkown !");
        }
    }
}