有没有人有任何运气脚本插入的ActiveMQ主题使用,例如,卷曲? 我正在尝试这样的事情
curl -d "JMSDestination=COMMON_TOPIC&JMSDestinationType=topic&JMSMessageCount=1&JMSText={\"name\":\"values-etc\"}}" http://localhost:8161/admin/sendMessage.action
我收到HTTP 500 NullPointerException,它看起来像AMQ-2740
java.lang.NullPointerException
at org.apache.activemq.web.handler.BindingBeanNameUrlHandlerMapping.getHandlerInternal(BindingBeanNameUrlHandlerMapping.java:57)
看起来问题是生成一个密钥并重新发送它,这是我迷路的地方。有谁幸运吗?
答案 0 :(得分:2)
这适用于BASIC HTTP身份验证和ActiveMQ 5.4.2。
正如您所说,您必须包含密钥,以及维护您的java会话。 让我们在SECRET变量中获取密钥并保存cookie文件(对于JSESSIONID)。
SECRET=`curl --silent -H "Authorization: Basic YWRtaW46c29tZXBhc3N3b3Jk" -c cookies "http://127.0.0.1:6500/admin/send.jsp?JMSDestination=$DESTINATION&JMSDestinationType=$DESTINATION_TYPE" | sed -n '/secret/s/.*name="secret"\s\+value="\([^"]\+\).*/\1/p'`
Authorization标头包含您的凭据的哈希值,您可以在实际的Web控制台和Web开发工具(Chome中的F12)中嗅探您的凭据。
通过重复使用Cookie和SECRET
发送消息curl --silent -H "Authorization: Basic YWRtaW46c29tZXBhc3N3b3Jk" -b cookies --data "secret=${SECRET}&JMSDestination=${DESTINATION}&JMSDestinationType=${DESTINATION_TYPE}&JMSText=${MESSAGE}"
请注意,5.8有一个RESTful api应该是特权。