我被困在这里:
我需要获取
的值org.jboss.system.server.ServerInfo
这里的代码我正在阅读mbean-attributes, 但我只能找到.hashvalues的价值观!
final MBeanAttributeInfo[] attributes = server.getMBeanInfo(mbean).getAttributes();
for (final MBeanAttributeInfo attribute : attributes) {
String name = attribute.getName();
}
经过两天的搜索 我请求帮助!
非常感谢,罗曼。
答案 0 :(得分:2)
这解决了我的问题,获取服务器信息:
MBeanServer server = getMBeanServer("jboss");
ObjectName mbeanname = getMBeanName(server, "server.location", "service",
"ServerName");
MBeanInfo mbeanInfo = server.getMBeanInfo(mbeanname);
List<Map<String, String>> list = new ArrayList<Map<String, String>>();
for (int i = 0; i < mbeanInfo.getAttributes().length; i++) {
Map<String, String> attributeMap = new HashMap<String, String>();
String attributeName = mbeanInfo.getAttributes()[i].getName();
attributeMap.put("name", attributeName);
String attributeValue = server.getAttribute(mbeanname, attributeName).toString();
attributeMap.put(attributeName, attributeValue);
attributeMap.put("value", attributeValue);
list.add(attributeMap);
}
答案 1 :(得分:0)
不确定 .hashcodes 的含义。您能否提供一些输出作为示例并向我们展示所有相关代码?
答案 2 :(得分:0)
public static Map<String, Object> getAllAttributes(String host, int port, String mbeanName) throws MalformedObjectNameException, IOException, InstanceNotFoundException, IntrospectionException, ReflectionException, AttributeNotFoundException, MBeanException {
// Get JMX connector and get MBean server connection
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi");
JMXConnector jmxc = JMXConnectorFactory.connect(url, null);
MBeanServerConnection mbsc = jmxc.getMBeanServerConnection();
// Query all attributes and values
ObjectName name = new ObjectName(mbeanName);
MBeanInfo info = mbsc.getMBeanInfo(name);
MBeanAttributeInfo[] attrInfo = info.getAttributes();
Map<String, Object> map = new HashMap<>();
for (MBeanAttributeInfo attr : attrInfo) {
if (attr.isReadable()) {
//System.out.println("\t" + attr.getName() + " = " + mbsc.getAttribute(name, attr.getName()));
map.put(attr.getName(), mbsc.getAttribute(name, attr.getName()));
}
}
jmxc.close();
return map;
}