ActiveMQ Artemis Jolokia返回404:curl请求失效但浏览器正常
问题原因及解决办法
出现这个问题的核心是curl请求和浏览器请求的行为存在差异,具体可能是以下几点:
- URL编码问题
浏览器会自动对URL中的特殊字符(比如逗号,)做URL编码,但curl默认不会。你可以尝试把MBean名称里的所有逗号替换成%2C,修改后的curl命令如下:
curl -v -H "Origin:http://IP:port" -u user:pass http://IP:Port/console/jolokia/read/org.apache.activemq.artemis%3Abroker%3D0.0.0.0%2Ccomponent%3Daddresses%2Caddress%3D123456%2Csubcomponent%3Dqueues%2Crouting-type%3Danycast%2Cqueue%3D123456/MessageCount
Broker名称不匹配
你命令里指定的broker=0.0.0.0可能和实际Artemis的broker实例名称不符。可以先在浏览器访问http://IP:Port/console/jolokia/list,搜索123456队列对应的MBean完整路径,确认broker的正确名称(比如默认可能是localhost或者自定义的broker名称),再替换到curl命令中。请求头缺失
浏览器请求时会自动携带Accept: application/json这类头信息,而你的curl命令没有添加。尝试补充该请求头:
curl -v -H "Origin:http://IP:port" -H "Accept: application/json" -u user:pass http://IP:Port/console/jolokia/read/org.apache.activemq.artemis:broker=0.0.0.0,component=addresses,address=123456,subcomponent=queues,routing-type=anycast,queue=123456/MessageCount
- 认证方式兼容问题
虽然你用了-u参数做基本认证,但可以试试把账号密码直接嵌入URL的方式,避免curl的认证处理差异:
curl -v -H "Origin:http://IP:port" http://user:pass@IP:Port/console/jolokia/read/org.apache.activemq.artemis:broker=0.0.0.0,component=addresses,address=123456,subcomponent=queues,routing-type=anycast,queue=123456/MessageCount
内容的提问来源于stack exchange,提问作者Mauro Avila
相关产品推荐
相关产品推荐

