替代JMS队列浏览器以实现跨过ActiveMQ?队列、浏览器、JMS、ActiveMQ

由网友(蝶き梦)分享简介:我的ActiveMQ消息传递实例(Amazon MQ上的ActiveMQ 5.16.2)使用STOMP。Icannot useJMS QueueBrowser,无法取消确认消息。一旦有使用者从队列中取出该消息,即标记为文档here中所述的未使用。假设代理不能更改,我查看了JMS的REST API映射here,但我没有...

我的ActiveMQ消息传递实例(Amazon MQ上的ActiveMQ 5.16.2)使用STOMP。Icannot useJMS QueueBrowser,无法取消确认消息。一旦有使用者从队列中取出该消息,即标记为文档here中所述的未使用。

假设代理不能更改,我查看了JMS的REST API映射here,但我没有看到任何模仿ActiveMQ管理页面(JSP)的端点,该端点能够浏览队列、使用者和消息内容,而不会主动从队列中拉出这些消息。

Java中的Spring消息队列如何实现整合ActiveMq

那么,如何以编程方式(例如通过REST API)实现我们可以在ActiveMQ管理页面中看到的JMS逻辑?

在假定已登录的情况下,查看REST API的文档时,此方法有效

curl -XGET https://user:pass@server:8162/admin/browse.jsp?JMSDestination=ActiveMQ.DLQ

并且它像在Web控制台上一样获取JSP页面输出,所以我假设它可以通过一些官方&REST API来完成。

注意。ActiveMQ JSP页面没有使用任何AJAX调用,因此我假定它直接使用JMS Java API。

推荐答案

REST/JMS mapping不提供任何邮件浏览功能。

但是,值得注意的是,REST/JMS映射独立于Jolokia公开的管理功能。Jolokia是一个HTTP-JMX桥,所以通过JMX公开的任何东西都可以通过HTTP访问(例如,使用curl)。DestinationViewMBean有多种您可以使用的方法,例如:

$ curl -XGET -u admin:admin -H "Origin: http://localhost" http://localhost:8161/api/jolokia/exec/org.apache.activemq:type=Broker,brokerName=localhost,destinationType=Queue,destinationName=TEST/browse()

其中TEST是您的队列的名称。

您可以使用search命令获取JMX对象的列表,例如:

$ curl -XGET -u admin:admin -H "Origin: http://localhost" http://localhost:8161/api/jolokia/search/org.apache.activemq:*

您可以阅读有关Jolokia Protocol on their website的更多信息。

阅读全文

相关推荐

最新文章