我已将以下属性添加到我的JBOSS EAP 6.2服务器;
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=9999"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=94.5.19.27"
并重新启动了jboss。当我尝试使用JVisualVM中的JMX字符串中的以下内容连接到实例时(94.5.19.27:9999),我收到以下错误消息
有谁知道我可能需要传递哪些其他配置?
由于
编辑如果是防火墙问题 - 会返回如下内容;
[secondstory_dev@secondstory1d log]$ netstat -na | grep 9999
tcp6 0 0 127.0.0.1:9999 :::* LISTEN
答案 0 :(得分:3)
让rmi在防火墙后面工作有一个技巧。 rmi使用两个端口,如果您未指定两个端口,则它无法通过防火墙工作。好的部分是你可以为两个端口使用相同的端口。令人讨厌的是,这不是默认功能。更糟糕的是,直到jdk 7,没有办法使用命令行配置jmx来执行此操作。假设你在jdk 7+上运行,你需要添加这个参数:
-Dcom.sun.management.jmxremote.rmi.port=9999
此处有更多详情http://realjenius.com/2012/11/21/java7-jmx-tunneling-freedom/。
答案 1 :(得分:0)
您需要添加以下选项:
-Dcom.sun.management.jmxremote.local.only=false
在重新启动时,当您运行“ netstat”时,您会看到该端口不只为本地主机打开:
$ netstat -na | grep 9999
tcp6 0 0 :::9999 :::* LISTEN
最后,您可以使用telnet进行验证:
telnet 94.5.19.27 9999
如果无法连接,则可能需要在Linux中检查防火墙:
firewall-cmd --permanent --add-port=9999/tcp
希望对您有帮助