尝试将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 \
-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应用程序中,我是否将用户名/密码留空或是用于登录服务器?
答案 0 :(得分:15)
您必须在/etc/hosts
文件中添加与/etc/sysconfig/network
文件中定义的相同的主机名。
这就是我解决问题的方法。
答案 1 :(得分:3)
我找到了解决这个问题的方法。
在catalina.sh
文件中添加以下内容:
JAVA_OPTS =“$ JAVA_OPTS -Dcom.sun.management.jmxremote = true -Dcom.sun.management.jmxremote.ssl = false -Dcom.sun.management.jmxremote.authenticate = false -Dcom.sun.management.jmxremote .port = 7010 -Djava.rmi.server.hostname = $ {IP}“
还在/etc/init.d/hosts
文件中添加以下行:
127.0.0.1 localhost <your_hostname>
这解决了这个问题。我现在可以在此端口上运行jconsole
以及jvisualvm
我希望这有帮助!
答案 2 :(得分:2)
如果您想动态获取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}"
答案 3 :(得分:1)
如果您在“导出”声明中使用“\”,请将其删除。
要连接到远程java进程,请使用运行java进程(tomcat实例)的服务器的IP地址。无法确定IP地址时抛出UnknownHostException,因此另一个选项是将名称 - IP地址定义添加到hosts文件中。
答案 4 :(得分:0)
您可以尝试将您在JAVA_OPTS中添加的参数添加到CATALINA_OPTS。它应该这样工作。
另外,请确保使用与运行tomcat的位置相同的配置文件登录进行设置。