我是JMX的新手,我正在尝试创建一个简单的例子。 我正在创建基本的JMX应用程序。我有Server.java执行以下操作:
JMXServiceURL url = new JMXServiceURL(
"service:jmx:rmi:///jndi/rmi://localhost:9999/server");
JMXConnectorServer cs =
JMXConnectorServerFactory.newJMXConnectorServer(url, null, mbs);
// Start the RMI connector server
echo("\nStart the RMI connector server");
cs.start();
在cs.start()上收到以下错误消息。
java.io.IOException: Cannot bind to URL [rmi://localhost:9999/server]: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused: connect]
at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:804)
at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:417)
at Server.main(Server.java:93)
Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused: connect]
at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:126)
at com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:208)
at javax.naming.InitialContext.bind(InitialContext.java:400)
at javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:625)
at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:412)
在我的glassfish服务器中,我添加了以下属性:
-Dcom.sun.management.jmxremote.ssl.need.client.auth=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.port=9999
请告诉我遗漏了什么。
同时使用RMI服务器执行..
我在RMI服务器上发出 -Dcom.sun.management.jmxremote.port=9999'
命令,出现以下错误:C:\Program Files\Java\jdk1.6.0_17\bin>java -Dcom.sun.management.jmxremote.port=9999 Error: Password file not found: C:\Program Files\Java\jdk1.6.0_17\jre\lib\management\jmxremote.password
答案 0 :(得分:2)
参考http://docs.oracle.com/javase/7/docs/technotes/guides/jmx/tutorial/connectors.html#wp1056865 内部内容教授如何运行基本的JMX应用程序,
编译Java类 $ javac * .java
在本地主机的端口9999上启动RMI注册表。 服务器将使用RMI注册表来注册RMI连接器存根 $ rmiregistry 9999&
启动Server类 $ java -classpath。服务器
在另一个终端窗口中启动Client类 $ java -classpath。客户端