我已将Web应用程序部署到远程树脂服务器,并且已打开JMX。

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

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连接到它
$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版本对此进行了尝试,但在两个实例上均收到“连接失败”的提示。
## 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)

你们是否有关于如何调试的想法(即找出问题所在)?

最佳答案

确保您正在使用以下Java属性集运行应用程序

-Dcom.sun.management.jmxremote.port=9005
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false

现在尝试连接。
如果要调试此命令,可以使用以下命令运行jconsole
jconsole -J-Djava.util.logging.config.file=path_to_logging.properties_for_jconsole

以下是logging.properties文件的内容
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后,将 pop 一个单独的窗口,显示日志。

关于java - 调试JConsole连接失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5455831/

10-10 18:28