2015-10-21 2 views
1

Есть ли способ получить список всех развертываний на Jboss 6.0 , реализованных на Java с использованием JMX (ServerMBean) или JNDI?Список всех развертываний от Jboss с использованием JMX или JNDI

+0

Использование 'jconsole', если вы найдете там операцию, которая возвращает развертывания -> да, есть способ получить ее через JMX, иначе нет. Как насчет использования 'jboss-cli' для такого рода информации? – SubOptimal

+0

мне нужно закодировать это в Java, но я не могу выяснить ObjectName или что полученный класс Bean является – FrederikH

+0

Надеюсь, что это может быть в форме 'Set MBeans = ManagementFactory.getPlatformMBeanServer(). QueryMBeans (new ObjectName ("org.jboss.admin: type = Application, name = *"), null); \t для (ObjectInstance objectInstance: MBeans) { \t \t services.add (JMX.newMXBeanProxy (сервер, objectInstance.getObjectName(), ApplicationMXBean.class)); \t} ' – FrederikH

ответ

0

На Wildfly 9.0.1.Final код выглядит следующим образом:

String host = "localhost"; 
    int port = 9990; 
    String urlString = System.getProperty("jmx.service.url","service:jmx:http-remoting-jmx://" + host + ":" + port); 
    JMXServiceURL serviceURL = new JMXServiceURL(urlString); 
    JMXConnector jmxConnector = JMXConnectorFactory.connect(serviceURL, null); 
    MBeanServerConnection connection = jmxConnector.getMBeanServerConnection(); 
    ObjectName name = new ObjectName("jboss.modules:type=ModuleLoader,name=*"); 
    Set<ObjectInstance> objectInstances = connection.queryMBeans(name, null); 
    for (ObjectInstance objectInstance : objectInstances) { 
     if (objectInstance.getObjectName().getCanonicalName().contains("ServiceModuleLoader")) { 
      System.out.println("invoking method on " + objectInstance.getObjectName()); 
      Object dumpAllModuleInformation = connection.invoke(objectInstance.getObjectName(), "dumpAllModuleInformation", new Object[]{}, new String[]{}); 
      System.out.println(dumpAllModuleInformation); 
     } 
    } 
    jmxConnector.close(); 

Может быть, вы можете адаптировать это к JBoss 6. На Wildfly 9.0.1.Finale это выходы:

Module deployment.stackoverflow-jboss-1.0-SNAPSHOT.war:main 
    Class loader: ModuleClassLoader for Module "deployment.stackoverflow-jboss-1.0-SNAPSHOT.war:main" from Service Module Loader 
    Resource Loaders: 
     Loader Type: org.jboss.as.server.deployment.module.VFSResourceLoader 
     Paths: 

      META-INF 
      META-INF/maven 
      META-INF/maven/stackoverflow-jboss 
Смежные вопросы