尝试将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"
卡特琳娜。显示:
Error: Exception thrown by the agent : java.net.MalformedURLException: Local host name unknown: java.net.UnknownHostException: myhostname: myhostname
不确定为什么在错误消息中重复我的主机名?
BTW,因为我设置身份验证为假,在jconsole应用程序,我留下用户名/密码空白或登录到服务器?
您必须在/etc/hosts
文件中添加与/etc/sysconfig/network
文件中定义的相同的主机名。这就是我解决问题的方法。
我已经找到了这个问题的解决方案。在catalina.sh
文件中添加以下内容:
JAVA_OPTS = " $ JAVA_OPTS -Dcom.sun.management。现在= true -Dcom.sun.management.jmxremote。ssl = false -Dcom.sun.management.jmxremote。= false -Dcom.sun.management.jmxremote进行身份验证。= 7010 -Djava.rmi.server港。主机名= $ {IP} "
还在/etc/init.d/hosts
文件中添加以下行:
127.0.0.1 localhost <your_hostname>
这解决了问题。我现在能够在这个端口上运行jconsole
和jvisualvm
。
如果您想动态获取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}"
-
如果你在'export'语句中使用了'',请删除它们。
-
要连接到远程java进程,请使用java进程(tomcat实例)所在服务器的IP地址。当IP地址无法确定时抛出UnknownHostException,所以另一种选择是将名称- IP地址定义添加到hosts文件中。
您可以尝试将JAVA_OPTS中添加的参数添加到CATALINA_OPTS中。应该是这样的。
还要确保使用与运行tomcat相同的配置文件登录进行设置。