4

尝试将 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

不知道为什么它在错误消息中重复我的主机名?

顺便说一句,由于我在 jconsole 应用程序中将身份验证设置为 false,我是将用户名/密码留空还是用于登录服务器?

4

5 回答 5

14

您必须在文件中添加与/etc/hosts文件中定义的主机名相同的主机名/etc/sysconfig/network。这就是我解决问题的方法。

于 2012-08-24T15:09:16.093 回答
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>

这解决了这个问题。我现在可以jconsolejvisualvm这个端口上运行。
我希望这有帮助 !

于 2013-02-07T08:47:39.840 回答
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}"
于 2012-07-11T02:02:42.237 回答
1
  1. 如果您在 'export' 语句中使用 '\',请将其删除。

  2. 要连接到远程 java 进程,请使用运行 java 进程(tomcat 实例)的服务器的 IP 地址。当无法确定 IP 地址时会引发 UnknownHostException,因此另一种选择是将名称 - IP 地址定义添加到您的主机文件中。

于 2011-12-23T21:51:16.473 回答
0

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

于 2013-02-04T08:16:46.230 回答