可以以某种方式查看AMQ主题的内容吗?

Sim*_*eon 5 java activemq-classic jms

我正在尝试使用查看主题的内容activemq-admin.

这就是我正在尝试的:

./activemq-admin browse --amqurl tcp://localhost:61616 my.topic
Run Code Online (Sandbox Code Playgroud)

这是我得到的输出:

Java Runtime: Sun Microsystems Inc. 1.6.0_24 /usr/lib/jvm/java-6-sun-1.6.0.24/jre
Heap sizes: current=62848k  free=62190k  max=932096k
JVM args: -Dactivemq.classpath=/home/pc/dev/apache-activemq-5.3.1/conf; -Dactivemq.home=/home/pc/dev/apache-activemq-5.3.1 -Dactivemq.base=/home/pc/dev/apache-activemq-5.3.1
ACTIVEMQ_HOME: /home/pc/dev/apache-activemq-5.3.1
ACTIVEMQ_BASE: /home/pc/dev/apache-activemq-5.3.1
Run Code Online (Sandbox Code Playgroud)

这不是我想要的.我希望以某种方式以原始形式看到队列中的消息.那可能吗 ?

谢谢,

Jak*_*rab 6

由于主题的性质,您无法浏览主题的内容。消息被发送进来,如果有任何订阅者,每个人都会在那个时间点收到一条消息。消息通常不会保留(除了一些与此处无关的例外)。

但是,有时出于调试目的,查看发送到主题的消息很有用。最简单的方法是设置一个虚拟目的地,将发送到主题的每条消息复制到一个队列中。

<destinationInterceptors>
    <virtualDestinationInterceptor>
        <virtualDestinations>
            <compositeTopic name="events" forwardOnly="false">
                <forwardTo>
                    <queue physicalName="events.thatHaveHappened" />
                </forwardTo>
            </compositeTopic>
        </virtualDestinations>
    </virtualDestinationInterceptor>
</destinationInterceptors>
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过 JMX 或 Web 控制台浏览队列。