首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试JConsole连接失败

调试JConsole连接失败
EN

Stack Overflow用户
提问于 2011-03-28 15:26:39
回答 8查看 57.6K关注 0票数 25

我有一个部署到远程树脂服务器的web应用程序,并且它已经打开了JMX。

我可以远程登录到远程服务器,即

代码语言:javascript
复制
franz@see:/tmp$ telnet <remote-ip> 5555
Trying <remote-ip>...
Connected to <remote-ip>.
Escape character is '^]'.
��sr5javax.management.remote.message.HandshakeBeginMessage�,���6profilestLjava/lang/String;Lversionq~xppt1.0^]

telnet> q
Connection closed.

但是我无法使用我的JConsole连接到它

代码语言:javascript
复制
$JAVA_HOME/bin/java -cp $JAVA_HOME/lib/jconsole.jar:$JAVA_HOME/lib/tools.jar:pm-common/lib/jmxremote_optional-1_0_1_3.jar sun.tools.jconsole.JConsole service:jmx:jmxmp://<remote-ip>:5555

我已经在下面的java版本中尝试过了,但是我在两个实例上都得到了“连接失败”的提示。

代码语言:javascript
复制
## where JAVA_HOME=/opt/java/64/jdk1.5.0_22
java version "1.5.0_22"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_22-b03)
Java HotSpot(TM) 64-Bit Server VM (build 1.5.0_22-b03, mixed mode)

## where JAVA_HOME=/opt/java/64/jdk1.6.0_17
java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) 64-Bit Server VM (build 14.3-b01, mixed mode)

你们有没有关于如何调试这个的想法(比如找出问题所在)?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2011-09-16 20:33:49

确保在运行应用程序时设置了以下java属性

代码语言:javascript
复制
-Dcom.sun.management.jmxremote.port=9005
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

现在尝试连接。如果您想对此进行调试,可以使用以下命令运行jconsole

代码语言:javascript
复制
jconsole -J-Djava.util.logging.config.file=path_to_logging.properties_for_jconsole

下面是logging.properties文件的内容

代码语言:javascript
复制
Logging.properties

handlers = java.util.logging.ConsoleHandler


.level = INFO

java.util.logging.ConsoleHandler.level = FINEST

java.util.logging.ConsoleHandler.formatter = \

java.util.logging.SimpleFormatter

// Use FINER or FINEST for javax.management.remote.level - FINEST is

// very verbose...

javax.management.level = FINEST

javax.management.remote.level = FINER

运行jconsole后,将弹出一个单独的窗口,显示日志。

票数 40
EN

Stack Overflow用户

发布于 2012-01-11 06:48:42

如果您运行jconsole -debug,它将为您提供有关故障的更多诊断信息。参见the Daniel Fuchs blog entry "Troubleshooting connection problems in JConsole"

我这样做了,它显示我使用的是32位jconsole,目标进程是用不同的(64位) jvm启动的,所以显然这是不允许的,因此它失败了。

票数 24
EN

Stack Overflow用户

发布于 2014-08-28 16:22:59

这终于让它对我起作用了:提供了这个额外的选项:-Djava.rmi.server.hostname=<ip addres where jvm is running

因此,用于从远程机器打开jconsole的所有vm参数、远程机器上的jvm必须以

代码语言:javascript
复制
 -Dcom.sun.management.jmxremote.authenticate=false  -Dcom.sun.management.jmxremote.port=<port> -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname=<ip address>

整个过程在here中列出

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5455831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档