2016-09-27 116 views
0

我在我的应用程序中有一个附加组件,它位于Heroku的私有空间中。该附加组件在配置变量中公开了一个JMX_URL。我想构建自己的健康指标页面,该页面将连接到附件的JMX,从mbeans读取属性并将其公开。 JMX_URL具有以下格式:连接到Heroku上托管的JMX

jmx://username:[email protected]:port 

如何正确构造一个有效的JMX服务URL和建立成功的连接?我的应用程序是否也应该在同一个私人空间中进行托管?任何帮助将不胜感激这个话题。

回答

0

我已经使它工作了,为了连接到在私有空间内运行的附加组件的JMX,应该从运行在同一私有空间中的应用程序访问它,必须在客户端的应用程序密钥库中注册证书以避免SSLHandshake错误。以下是建立连接的代码片段:

String url = "service:jmx:rmi:///jndi/rmi://[host]:[port]/jmxrmi"; 
JMXServiceURL serviceURL = new JMXServiceURL(url); 
Map env = new HashMap(); 
String[] creds = { "user", "password" }; 
env.put(JMXConnector.CREDENTIALS, creds); 
JMXConnector cc = JMXConnectorFactory.connect(serviceURL, env); 
MBeanServerConnection mbsc = cc.getMBeanServerConnection();