0
我試圖使用下面的代碼建立一個從java客戶端到我的tomcat實例的JMX連接。使用JMXMP的JMX連接掛起
JMXServiceURL url = new MXServiceURL("service:jmx:jmxmp://<host>:<port>"); //line 1
JMXConnector jmxc = JMXConnectorFactory.connect(url); //line 2
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
凡
主機在我的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 Bean。
所以,我不能連接,如果我使用JMXMP協議。如果我使用RMI協議,我可以連接。當我使用JMXMP時可能會出錯?
感謝, NKS
看起來像tomcat沒有按照線程對JMXMP的本機支持http://stackoverflow.com/questions/11413178/how-to-enable-jmxmp-in-tomcat。該線程建議創建一個'LifecycleListener'來啓用tomcat JMXMP。有沒有辦法通過一些配置條目來實現這一點,如JMX-RMI的情況? – user957183