我已将以下属性添加到我的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(94.5.19.27:9999)中的JMX字符串中的以下连接到实例时,我收到以下错误消息
有谁知道我可能需要通过哪些其他配置?
谢谢
编辑是否是防火墙问题 - 这将返回如下;
[secondstory_dev@secondstory1d log]$ netstat -na | grep 9999
tcp6 0 0 127.0.0.1:9999 :::* LISTEN
让rmi在防火墙后面工作有一个技巧。 rmi使用两个端口,如果您不指定两个端口,则它不能通过防火墙工作。好的部分是你可以为两个端口使用相同的端口。令人讨厌的是,这不是默认功能。更糟糕的是,直到jdk 7,没有办法使用命令行配置jmx来执行此操作。假设你在jdk 7+上运行,你需要添加这个参数:
-Dcom.sun.management.jmxremote.rmi.port=9999
更多细节在这里http://realjenius.com/2012/11/21/java7-jmx-tunneling-freedom/。
您需要添加选项:
-Dcom.sun.management.jmxremote.local.only=false
重新启动时,当您运行“netstat”时,您可以看到该端口仅对localhost不打开:
$ netstat -na | grep 9999
tcp6 0 0 :::9999 :::* LISTEN
最后,您可以使用telnet进行验证:
telnet 94.5.19.27 9999
如果您无法连接,则可能需要在linux中查看防火墙:
firewall-cmd --permanent --add-port=9999/tcp
我希望这对你有所帮助