jmx和rmi基本不熟
网上相关帖子不是很多,但是都好坑,研究了一天终于是调通了,有些还是没去深究的以后有时间再弄
1.修改conf/activemq.xml配置
a. 加useJmx=“true”
<broker xmlns="http://activemq.apache.org/schema/core" useJmx="true" brokerName="localhost" dataDirectory="${activemq.data}">
b.从false修改到如下
<managementContext>
<managementContext createConnector="true" connectorPort="1099" connectorPath="/jmxrmi" jmxDomainName="org.apache.activemq"/>
</managementContext>
网上很多1093和11099端口说法,行不通,很蛋疼,官方文档说的是1099.配置完之前最好telnet一下看看1099是否通的,否则在docker启动的时候-p开放端口,其他方式解压安装的注意iptable打开端口,还要注意一下防火墙之类的.
注意,我的方式,仅仅需要修改activemq的此两处配置即可,其他的不需要做任何修改
activemq中文手册
2.代码
public ActiveMqEntity getQueueMap() {
Map<String, String[]> env = new HashMap<>();
String[] credentials = {
"admin", "admin"};
env.put(JMXConnector.CREDENTIALS, credentials);
ActiveMqEntity activeMqEntity = new ActiveMqEntity();
JMXConnector conn = null;
BrokerViewMBean bean = null;
MBeanServerConnection connection = null;
try {
JMXSer