Tomecat:Apache Tomcat/9.0.0.M26
JDK:java version "1.8.0_121"
Java(TM) SE Runtime Environment (build 1.8.0_121-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.121-b13, mixed mode)
网络上的配置方式我尝试过之后发现没有办法开启jmx监听端口,经过多次尝试,勉强配置好非ssl连接
步骤:
1、将$JAVA_HOME/jre/lib/management 下面的 jmxremote.access 最后两行注释去掉, 也就是关于 monitorRole controlRole 权限的两行(controRole权限有三行)注释符号若存在则去掉
2、将$JAVA_HOME/jre/lib/management 下面的 jmxremote.password.template 复制为 jmxremote.password , 同样将最后两行 关于 monitorRole controlRole 两行注释符去掉,monitorRole controlRole 之后的字段分别为对应的密码
3、将这两个文件,即 jmxremote.access jmxremote.password 均拷贝到 Tomcat目录下 conf/ 目录下,并设置权限 chmod 600 jmxremote.*
4、在Tomcat 目录下 bin/ 目录下新建 setenv.sh 写入
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Djava.rmi.server.hostname=192.168.0.110 主机地址
-Dcom.sun.management.jmxremote.port=8999 主机端口号
-Dcom.sun.management.jmxremote.ssl=false 不使用ssl
-Dcom.sun.management.jmxremote.authenticate=true 使用认证
-Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access jmxremote.access路径
-Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password" jmxremote.password路径
export CATALINA_OPTS
这里双引号之间换行只是为了记录方便,实际文件中双引号之间内容不换行
5、编辑Tomcat目录下 bin/ 目录下 catalina.sh
最后加入两行
export JAVA_HOME=/opt/jdk-1.8.0_121 jdk路径
export CATALINA_HOME=/usr/local/tomcat/ tomcat路径
在 #----- Execute The Requested Command ---------------------------------------- 下面加入
JAVA_OPTS="$JAVA_OPTS
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8999
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false"
这里同样实际文件中双引号之间内容不换行
6.然后重启Tomcat
lsof -i:8999 查看指定的端口号是否开始监听
使用本机或者远程主机 $JAVA_HOME/bin/jconsole 尝试连接
因为查找的各位前辈的经验实际配置的时候都失败了,可能是因为版本的原因吧;
官网上写的配置方式我也没有试验成功,所以就反复尝试,最后这样配置看起来就很奇怪但是我确实懒得再简化配置方法了。
记录在这方便自己日后再需要时查看,如果有同学想照做我只能祝你成功了。