根据此文档http://tomcat.apache.org/tomcat-5.5-doc/monitoring.html#Enabling_JMX_Remote,应该可以远程监视在JDK 1.4上运行的Tomcat 5.5服务器,但是在遍布整个Web并尝试多个操作系统之后,我仍然只是在第一天。 到目前为止我的结果是。使用标准设置Tomcat标准
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=%my.jmx.port%
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=localhost
将在JDK 1.5及更高版本上正常运行。 调试到Tomcat使我可以访问MBeanServer,但我无法从外部连接到它。根据维基百科的信息http://en.wikipedia.org/wiki/Java_Management_Extensions 我只需要一个工作连接器,我不知道如何使它工作。
尝试根据
设置HTTP适配器<Connector port="${AJP.PORT}"
handler.list="mx"
mx.enabled="true"
mx.httpHost="${JMX.HOST}"
mx.httpPort="${JMX.PORT}"
protocol="AJP/1.3" />
完全没有效果。当我调试它几乎看起来像属性handler.list和mx。*只是被忽略。我知道我应该只使用JDK 1.5,我的担心就会消失,但是我们有一个很大的JDK 1.4遗留安装基础,如果我们可以使用JMX监控,它会很棒。 最终我想使用JConsole或JVisualVM连接到Tomcat,据我所知,连接URL看起来像
service:jmx:rmi:///jndi/rmi://localhost:8888/jmxrmi
是8888是我的JMX端口。 如果有人对如何深入研究问题的根源有一些建议或想法,那将非常有帮助。
答案 0 :(得分:1)
JMX技术实施
Java 2平台标准版5.0(J2SE 5.0)支持JMX 1.2和JMX Remote API 1.0,它现在是官方的JMX参考实现(RI)。对于运行J2SE 1.4的开发人员,Sun Microsystems也提供了JMX RI,可以免费下载。
要从外部连接,请尝试删除该行
-Djava.rmi.server.hostname =本地主机
如果你正在使用Linux,请像@vinothkr所说的那样在JMX远程连接上解决本地主机问题(文件/ etc / hosts,将127.0.0.1替换为服务器主机名出现的行上的服务器IP)。对于Windows,我认为可以应用同样的事情。
关于连接器,它是您阅读的文档上jmx远程端口上的连接器。您在协议AJP / 1.3上的server.xml上设置的连接器不相关。它涉及Apache HTTPd(或其他Web服务器/负载均衡器)与Tomcat之间的通信。
答案 1 :(得分:0)
如果您能够连接到在Windows计算机上运行的JVM。然后问题是你的hosts.conf
如果报告127.0.0.1,请尝试使用主机名-i,然后出现问题
查看此常见问题解答no 5。 http://download.oracle.com/javase/1.5.0/docs/guide/management/faq.html
由于JMX使用端口重定向。这会导致问题
答案 2 :(得分:-1)
您是否定义了远程服务器?
-Djava.rmi.server.hostname=localhost"