java - 在 Tomcat docker 容器中启用 JMX

标签 java tomcat docker docker-compose

我正在尝试使用 docker-compose.yml 在 tomcat docker 镜像上启用 JMX,但我仍然收到 VisualVM 无​​法连接到 JMX 的错误。

  tomcat:
    image: tomcat:8.0-jre8
    environment:
     CATALINA_OPTS: -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=9000 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false
    ports:
     - "9000:9000"

最佳答案

JMX 需要的不仅仅是一个端口,因为还涉及 RMI。远程 JMX 一直是 Tomcat 的挑战,而使用 Docker 基本上实现了这种“远程”访问。

看看 Tomcat 的 JMX Remote Lifecycle Listener查看可以设置的端口号,使用该监听器设置它们。如果不这样做,RMI 服务器基本上可以自由使用它想使用的任何端口,而且您无法预测它们。

设置这些端口后,将端口映射提供给 Docker,您就可以开始了。

关于java - 在 Tomcat docker 容器中启用 JMX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38859843/

相关文章:

java - 将进程输入流数据写入 GUI

java - getClass().getResource + Tomcat + hibernate

mongodb - FIWARE Cygnus 在空间使用方面有任何问题吗?

docker - GitLab CD工作流将Docker应用程序部署到登台和生产中

java - 一个方法调用另一个字符串方法

java - 如何创建应用程序范围的信号量

Java 输入流。有没有正确有效的方法?

java - slf4j 记录器信息级别未登录 Apache Tomcat

bash - 从 cron 作业创建空的 catalina.out(基于刚刚删除的 catalina.out)

docker run 将命令行参数作为配置文件传递