GlassFish 在具有公共(public) IP 地址和 jmx 端口 8986 的主机上运行
启动时
JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://test.anahata.net.au:8986/jndi/rmi://test.anahata.net.au:8986/jmxrmi]]
当我尝试使用来自另一个盒子的 test.anahata.net.au:8986 + 用户 + 密码通过 JConsole 连接时,我得到:
non-JRMP server at remote endpoint
如果我尝试使用服务连接:jmx:rmi://test.anahata.net.au:8986/jndi/rmi://test.anahata.net.au:8986/jmxrmi
我得到:
connection refused
域.xml
> <admin-service system-jmx-connector-name="system"
> type="das-and-server">
> <jmx-connector address="0.0.0.0" port="8986" name="system" auth-realm-name="admin-realm">
> <ssl classname="com.sun.enterprise.security.ssl.GlassfishSSLImpl"
> client-auth="want" cert-nickname="s1as"></ssl>
> </jmx-connector>
> <property name="adminConsoleContextRoot" value="/admin"></property>
> <property name="adminConsoleDownloadLocation" value="${com.sun.aas.installRoot}/lib/install/applications/admingui.war"></property>
> <property name="ipsRoot" value="${com.sun.aas.installRoot}/.."></property>
> <das-config></das-config>
> </admin-service>
>
> ...
> <jvm-options>-Djava.rmi.server.hostname=test.anahata.net.au</jvm-options>
我在运行 gf 4.1.1 和真正的 SSL 证书的不同 vm 上有一个类似的设置,我可以使用 host:port 连接到它,但如果我尝试使用连接
服务:jmx:rmi://host.com:8886/jndi/rmi://host.com:8886/jmxrmi
我明白了
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
有人对此有所了解吗?
最佳答案
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.port=8686
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=myremoteip
由于 glassfish 4 这是唯一的方法。
虽然我确实在运行 asadmin enable-secure-admin 之前设法连接到 glassfish 自己的 jmx。
打开日志记录到 FINE,看看你是否在 JMX auth 期间收到“LoginException”
javax.enterprise.system.tools.admin.security
无论如何,我的结论很头疼,只需使用上面的 jvm jmx 即可。
关于glassfish - 通过 JMX 将 JConsole 连接到远程 glassfish 4.1/4.1.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35289813/