Java Can';无法将jconsole连接到远程服务器,tomcat无法启动
正在尝试将jconsole连接到远程服务器 我在catalina.sh中添加了以下内容:Java Can';无法将jconsole连接到远程服务器,tomcat无法启动,java,tomcat,jvm,jconsole,Java,Tomcat,Jvm,Jconsole,正在尝试将jconsole连接到远程服务器 我在catalina.sh中添加了以下内容: export JAVA_OPTS="-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.port=9005 \ -Dcom.sun.management.jmxremote.ssl=false \ -Dcom.sun.management.jmxremote.authenticate=false \
export JAVA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.port=9005 \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=xx.xx.xx.xx"
catalina.out显示:
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: myhostname: myhostname
不确定为什么会在错误消息中重复我的主机名?
顺便说一句,由于我将身份验证设置为false,在jconsole应用程序中,我是将用户名/密码留空还是将其用于登录服务器
如果要动态获取IP地址,可以尝试:
IP=`ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'`
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.rmi.server.hostname=${IP}"
您必须在
/etc/hosts
文件中添加与在/etc/sysconfig/network
文件中定义的主机名相同的主机名。
这就是我解决问题的方法。您可以尝试将JAVA\u OPTS中添加的参数添加到CATALINA\u OPTS中。应该是这样的。
另外,请确保您使用运行tomcat的相同配置文件登录进行设置。我找到了解决此问题的方法。 在您的
catalina.sh
文件中添加以下内容:
127.0.0.1 localhost <your_hostname>
JAVA_OPTS=“$JAVA_OPTS-Dcom.sun.management.jmxremote=true-Dcom.sun.management.jmxremote.ssl=false-Dcom.sun.management.jmxremote=false-Dcom.sun.management.jmxremote.port=7010-Djava.rmi.server.hostname=${IP}”
同时在/etc/init.d/hosts
文件中添加以下行:
127.0.0.1 localhost <your_hostname>
127.0.0.1本地主机
这解决了问题。我现在可以在此端口上运行jconsole
以及jvisualvm
。我希望这有帮助 您是否将属性rmi.server.hostname用于其他用途(启用JMX除外)?我正在使用它b/c我认为您需要它来连接到远程服务器。您好@Blankman,如果您认为我的答案解决了您的问题,您能接受我的答案吗?否则,如果你需要进一步的帮助,我很乐意帮助你。