0

JBoss 5.1.0.GA の mebeans にアクセスすると、次のエラーが発生します。

     Exception in thread "main" javax.management.InstanceNotFoundException: jboss.system:type=ServerInfo
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1094)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:662)
at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638)
at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1404)
at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)
at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:600)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)
at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source)
at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:878)
at test.mbean.JBossJMXClient.main(JBossJMXClient.java:30)

これが私の Java クラスです。

public class JBossJMXClient {
    public static void main(String[] args) throws Exception {
        String host = "192.168.0.249";// Your JBoss Bind Address default is
                                    // localhost
    int port = 4545; // management-native port
        String urlString = "service:jmx:rmi:///jndi/rmi://" + host + ":" + port
            + "/jmxrmi";
        System.out.println("        \n\n\t****  urlString: " + urlString);
    JMXServiceURL serviceURL = new JMXServiceURL(urlString);
    JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL,
            null);
    MBeanServerConnection connection = jmxConnector
            .getMBeanServerConnection();

    // Invoke on the JBoss AS MBean server
    int count = connection.getMBeanCount();
    System.out.println(count);
    ObjectName objectName = new ObjectName("jboss.system:type=ServerInfo");
    String javaVersion = (String)connection.getAttribute(objectName, "JavaVersion");
    System.out.println(javaVersion);
    jmxConnector.close();
     }
  }

すでにファイアウォールにチェックを入れました。問題はありません。この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

RMI のデフォルト ポート 1090 を使用してみてください。実際、URL を次のように少し変更します。

String urlString = "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxconnector";

「jmxrmi」から「jmxconnector」までの URL の最後の部分を見てください。

于 2013-07-02T17:58:42.007 に答える