如何在JBoss fuse中获得JMX连接
我试图从JBoss fuse获得JMX连接,以统计ActiveMQ中挂起的消息数,但我无法获得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
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很高兴它帮助了你。请接受我的回答(左边的勾号),谢谢@赫尔曼很高兴这对你有帮助。请接受我的回答(左边的勾号),谢谢!