如何在JBoss fuse中获得JMX连接

如何在JBoss fuse中获得JMX连接,jboss,activemq,jmx,jbossfuse,simplejmx,Jboss,Activemq,Jmx,Jbossfuse,Simplejmx,我试图从JBoss fuse获得JMX连接,以统计ActiveMQ中挂起的消息数,但我无法获得JMX连接。它总是以例外结束 JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-root"); JMXConnector jmxc = JMXConnectorFactory.connect(url); 以下例外情况: java.lang.Illega

我试图从JBoss fuse获得JMX连接,以统计ActiveMQ中挂起的消息数,但我无法获得JMX连接。它总是以例外结束

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-root");
JMXConnector jmxc = JMXConnectorFactory.connect(url);
以下例外情况:

java.lang.IllegalArgumentException: Expected String[2], got null
    at org.apache.karaf.management.JaasAuthenticator.authenticate(JaasAuthenticator.java:46)
    at javax.management.remote.rmi.RMIServerImpl.doNewClient(RMIServerImpl.java:232)
    at javax.management.remote.rmi.RMIServerImpl.newClient(RMIServerImpl.java:199)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)
    at sun.rmi.transport.Transport$1.run(Transport.java:200)
    at sun.rmi.transport.Transport$1.run(Transport.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:196)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
    at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
    at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2430)
    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:308)
    at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270)

您缺少必需的凭据

查看您需要向
JMXConnectorFactory

Map env = ...;
String[] creds = {"monitorRole", "mrpasswd"};
env.put(JMXConnector.CREDENTIALS, creds);
JMXConnector cc = JMXConnectorFactory.connect(url, env);

您缺少必需的凭据

查看您需要向
JMXConnectorFactory

Map env = ...;
String[] creds = {"monitorRole", "mrpasswd"};
env.put(JMXConnector.CREDENTIALS, creds);
JMXConnector cc = JMXConnectorFactory.connect(url, env);
这是解决办法

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-root");

HashMap<String, String[]> environment = new HashMap<String, String[]>();
String[] creds = { "admin", "admin" };
environment.put(JMXConnector.CREDENTIALS, creds);

JMXConnector jmxc = JMXConnectorFactory.connect(url, environment);
MBeanServerConnection connection = jmxc.getMBeanServerConnection();
JMXServiceURL=newjmxserviceurl(“服务:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-根“);
HashMap环境=新建HashMap();
字符串[]creds={“admin”,“admin”};
put(JMXConnector.CREDENTIALS、creds);
JMXConnector jmxc=JMXConnectorFactory.connect(url,环境);
MBeanServerConnection=jmxc.getMBeanServerConnection();
以下是解决方案

JMXServiceURL url = new JMXServiceURL("service:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-root");

HashMap<String, String[]> environment = new HashMap<String, String[]>();
String[] creds = { "admin", "admin" };
environment.put(JMXConnector.CREDENTIALS, creds);

JMXConnector jmxc = JMXConnectorFactory.connect(url, environment);
MBeanServerConnection connection = jmxc.getMBeanServerConnection();
JMXServiceURL=newjmxserviceurl(“服务:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-根“);
HashMap环境=新建HashMap();
字符串[]creds={“admin”,“admin”};
put(JMXConnector.CREDENTIALS、creds);
JMXConnector jmxc=JMXConnectorFactory.connect(url,环境);
MBeanServerConnection=jmxc.getMBeanServerConnection();

@Herman很高兴它帮助了你。请接受我的回答(左边的勾号),谢谢@赫尔曼很高兴这对你有帮助。请接受我的回答(左边的勾号),谢谢!