Как найти атрибуты weblogic jmx для имени объекта

Я пишу простое клиентское приложение для подключения к weblogic и перечисления всех библиотек, от которых зависит веб-приложение. Однако у меня возникают трудности с поиском подходящих атрибутов для имени объекта. Например,

Если вы посмотрите на приведенный ниже пример кода, приведенный на oracle.com для подключения MBeanServer

public static void initConnection(String hostname, String portString,
  String username, String password) throws IOException,
  MalformedURLException {

  String protocol = "t3";
  Integer portInteger = Integer.valueOf(portString);
  int port = portInteger.intValue();
  String jndiroot = "/jndi/";
  String mserver = "weblogic.management.mbeanservers.edit";

  JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port,
  jndiroot + mserver);

  Hashtable h = new Hashtable();
  h.put(Context.SECURITY_PRINCIPAL, username);
  h.put(Context.SECURITY_CREDENTIALS, password);
  h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
     "weblogic.management.remote");
     connector = JMXConnectorFactory.connect(serviceURL, h);
     connection = connector.getMBeanServerConnection();


}

public ObjectName startEditSession() throws Exception {
  // Get the object name for ConfigurationManagerMBean.
  ObjectName cfgMgr = (ObjectName) connection.getAttribute(service,
     "ConfigurationManager");



  // Instruct MBeanServerConnection to invoke
  // ConfigurationManager.startEdit(int waitTime int timeout).
  // The startEdit operation returns a handle to DomainMBean, which is
  // the root of the edit hierarchy.
  ObjectName domainConfigRoot = (ObjectName) 
     connection.invoke(cfgMgr,"startEdit", 
     new Object[] { new Integer(60000),
     new Integer(120000) }, new String[] { "java.lang.Integer",
     "java.lang.Integer" });
  if (domainConfigRoot == null) {
     // Couldn't get the lock
     throw new Exception("Somebody else is editing already");
  }
  return domainConfigRoot;




}

Линия

ObjectName cfgMgr = (ObjectName) connection.getAttribute (service, "ConfigurationManager");

Имеется в виду атрибут JMX ConfigurationManger. Как мы можем найти все атрибуты, которые находятся под данным именем объекта в weblogic?

Спасибо за вашу помощь!!

2 ответа

Не берите в голову! Я нашел решение.

Вы получаете атрибуты для ObjectName, вызывая getBeanInfo в ServerConnection!

Пример: MBeanAttributeInfo[] beanInfo = (connection.getMBeanInfo(objectName)).getAttributes();

for(MBeanAttributeInfo info:beanInfo) System.out.println(info.getType()+" "+info.getName());

Возможно, инструмент анализа WebLogic Classloader (CAT) может дать дополнительную информацию из коробки...

Другие вопросы по тегам