我正在尝试使用以下代码从java客户端建立到tomcat实例的JMX连接。
JMXServiceURL url = new MXServiceURL("service:jmx:jmxmp://<host>:<port>"); //line 1
JMXConnector jmxc = JMXConnectorFactory.connect(url); //line 2
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();哪里
host =运行tomcat实例的远程计算机 端口= jmx启用端口。在我的代码中是9840
我的tomcat setenv.sh文件是用以下配置编辑的,以启用JMX
export CATALINA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9840 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"但是,当我执行程序时,它挂在第2行。
如果我将第1行改为JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi"),以使用RMI而不是JMXMP,它就会执行,并且我能够访问各种MX。
所以,如果我使用JMXMP协议,我就无法连接。如果我使用RMI协议,我就可以连接。当我使用JMXMP时,可能出了什么问题?
谢谢,nks
发布于 2016-04-21 13:42:57
为了使用JMXMP客户机,需要运行JMXMP连接器服务器。它无法连接到默认的RMI连接器服务器。
还可以看到JMXMP代理的问题,您可以将该代理安装到正在运行的服务器中。
https://stackoverflow.com/questions/36770061
复制相似问题