无法将jconsole连接到远程服务器,tomcat无法启动

时间:2011-12-22 03:59:15

标签: 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 \
    -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应用程序中,我是否将用户名/密码留空或是用于登录服务器?

5 个答案:

答案 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)

  1. 如果您在“导出”声明中使用“\”,请将其删除。

  2. 要连接到远程java进程,请使用运行java进程(tomcat实例)的服务器的IP地址。无法确定IP地址时抛出UnknownHostException,因此另一个选项是将名称 - IP地址定义添加到hosts文件中。

答案 4 :(得分:0)

您可以尝试将您在JAVA_OPTS中添加的参数添加到CATALINA_OPTS。它应该这样工作。
另外,请确保使用与运行tomcat的位置相同的配置文件登录进行设置。