【问题标题】:JBoss Fuse JMX not workingJBoss Fuse JMX 不工作
【发布时间】:2017-05-04 11:24:22
【问题描述】:
我尝试在 Jboss fuse 容器中连接 JMX rmi url 以监控队列。
jconsole中没有连接的URL,
service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel
我想在我的包中实现,如何在 JBoss Fuse 中连接 MBean 服务器?
提前谢谢。
【问题讨论】:
标签:
apache-camel
activemq
jmx
osgi-bundle
jbossfuse
【解决方案1】:
恕我直言,只是错误的 URL。
您可以在org.apache.karaf.management.cfg 中查看您服务器的当前设置。
例如:
#
# Port number for RMI registry connection
#
rmiRegistryPort = 1099
#
# Host for RMI registry
#
rmiRegistryHost = 0.0.0.0
#
# Port number for RMI server connection
#
rmiServerPort = 44444
#
# Host for RMI server
#
rmiServerHost = 0.0.0.0
#
# Name of the JAAS realm used for authentication
#
jmxRealm = karaf
#
# The service URL for the JMXConnectorServer
#
serviceUrl = service:jmx:rmi://${rmiServerHost}:${rmiServerPort}/jndi/rmi://${rmiRegistryHost}:${rmiRegistryPort}/karaf-${karaf.name}
#
# Whether any threads started for the JMXConnectorServer should be started as daemon threads
#
daemon = true
#
# Whether the JMXConnectorServer should be started in a separate thread
#
threaded = true
#
# The ObjectName used to register the JMXConnectorServer
#
objectName = connector:name=rmi
在我的例子中,URL 看起来像 service:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-root
附:并且不要忘记指定用户名和密码。
【解决方案2】:
终于解决了karaf用户名和密码的问题,
检查 users.properties 文件中的用户名和密码。
service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root
它应该可以工作。
JMXServiceURL url = new JMXServiceURL(serviceURL);
HashMap<String, String[]> environment = new HashMap<String, String[]>();
String username = "admin";
String password = "admin";
String[] credentials = new String[] { username, password };
environment.put("jmx.remote.credentials", credentials);
connectorServer = JMXConnectorFactory.connect(url,environment);