我的理解是,如果我们配置以下属性,tomcat服务器可以通过jmxrmi访问。也可以配置端口。
-Dcom.sun.management.jmxremote.port=30000
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=true
-Dcom.sun.management.jmxremote.password.file=xyz
-Dcom.sun.management.jmxremote.access.file=xyz
之后,tomcat服务器可以通过jconsole或jvisualvm等jmx工具进行连接,但我也注意到同一个tomcat服务器也可以连接到默认的jmxrmi端口1099上。我还没有配置端口1099。即使我注解掉了上面所有的属性,我看到tomcat仍然可以连接到jvisualvm上的1099端口。
请建议在默认端口上启用此连接的方法。我怎样才能禁用这个连接?
可能classpath中的其他第三方库也在这么做,但如何判断是哪一个呢?
1条答案
按热度按时间fquxozlt1#
jmx使用两个端口:一个用于jmx连接(已设置为端口30000),另一个用于rmi通信。java默认为端口1099,但如果正在使用,它将选择1099之后的第一个可用端口。在Java8中,不能通过系统属性显式设置此端口。
对于以后的java版本,可以使用system属性
com.sun.management.jmxremote.rmi.port
.tomcat有一个解决方法。你可以用
JmxRemoteLifecycleListener
设置rmiServerPortPlatform
属性。把它调到你喜欢的端口。请注意,您不能禁用第二个端口:这是jmx正常运行所必需的。