如何在活动 mq Web 控制台 localhost:8161 中发送消息的消息头(属性)?
Posted
技术标签:
【中文标题】如何在活动 mq Web 控制台 localhost:8161 中发送消息的消息头(属性)?【英文标题】:How to send message headers (properties) for a message in active mq web console localhost:8161? 【发布时间】:2018-01-17 03:46:56 【问题描述】:我在网上搜索了很多,找不到任何答案。
【问题讨论】:
【参考方案1】:您不能,控制台提供的消息发送功能非常有限。如果您想发送完整的消息,请使用 JMS 客户端。
【讨论】:
【参考方案2】:您可以使用JMSToolBox 之类的应用程序
【讨论】:
【参考方案3】:在这种情况下不能使用 Activemq 控制台,但您可以使用 curl 命令发送带有暴露 Web 控制台 API 的标头的消息。请参考以下链接:
ActiveMQ Rest
例如,使用下面的命令,使用属性“key=2dffvdfbfd”
curl -XPOST -d "body=Test message" -d "key=2dffvdfbfd" http://admin:admin@<brokerIp>:8161
【讨论】:
你知道这个构建了什么请求吗?我正在尝试在 Rest Client 中为 VS 代码构建请求,但我不知道如何传递这些属性。 正确的端点 URI 是http://admin:admin@<brokerIp>:8161/api/message?destination=<queue:topic>://<destination-name>
。这确实允许提供额外的 JMS 属性。
更准确地说,destination
JMS 属性可以在 URI 中提供或作为表单数据(您的选择)提供,但 URI 中的尾随 /api/message
是强制性的。【参考方案4】:
Web 控制台不允许发送自定义 jms 标头或属性。
所以,你需要使用rest api:
http://activemq.apache.org/rest.html
以下 curl 对我有用:
activemq 5.14.x 队列名称 = avenger_tasks 正文消息 ='a': 'b'
jms 标头名称 = JMSCorrelationID
jms 标头值 = 9999
curl -H 'Authorization: Basic YWabcdefg==' \
-d "body='a': 'b'" \
-d "JMSCorrelationID=9999" \
-d "JMSReplyTo=NickFury" \
-d "SomeProperty=SomeValue" \
http://localhost:8161/api/message/avenger_tasks?type=queue
或者使用用户名和密码
curl -u admin:admin \
-d "body='a': 'b'" \
-d "JMSCorrelationID=9999" \
-d "JMSReplyTo=NickFury" \
-d "SomeProperty=SomeValue" \
http://localhost:8161/api/message/avenger_tasks?type=queue
【讨论】:
以上是关于如何在活动 mq Web 控制台 localhost:8161 中发送消息的消息头(属性)?的主要内容,如果未能解决你的问题,请参考以下文章
Spring Web Socket - 从 MQ 监听器通知客户端