2

私はここで立ち往生しています:

の値を取得する必要があります

org.jboss.system.server.ServerInfo

ここのコードでは、mbean 属性を読み取っていますが、値の instaed は .hashvalues しか見つかりません!

final MBeanAttributeInfo[] attributes = server.getMBeanInfo(mbean).getAttributes();
for (final MBeanAttributeInfo attribute : attributes) {
                    String name = attribute.getName();                            
}

2日間の検索の後、私は助けを求めます!

どうもありがとう、ロマン。

4

3 に答える 3

3
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;

}
于 2016-06-13T05:30:16.810 に答える
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);
    }
于 2012-06-20T11:00:37.043 に答える
0

.hashcodesの意味がわからない。例としていくつかの出力を提供し、関連するすべてのコードを表示していただけますか?

于 2012-05-07T18:36:18.463 に答える