Listar EJBs no JBoss com JMX

1 resposta
danieldestro

Meu ambiente tem:

  • JBoss 4.0.3-SP1
  • Java 5

Preciso listar todos os EJBs publicados no container via JMX. Não acho documentação a respeito.

O máximo que achei foi isso: http://jboss.org/wiki/Wiki.jsp?page=DisplayTheJDNITreeWithTheJMXConsole

Peguei os fontes dessa funcionalidade do jmx-console do JBoss, mas mesmo assim não consegui fazer funcionar.

Procuro algo mais direto e mais simples, ou uma documentação objetiva a respeito do que quero.

Alguém tem algo pra ajudar?

Grato

1 Resposta

danieldestro

Resolvido: http://www.jboss.org/index.html?module=bb&op=viewtopic&t=97699

package test;

import java.lang.reflect.Method;
import java.util.*;
import javax.management.*;
import org.jboss.jmx.adaptor.control.*;
import org.jboss.mx.server.*;
import org.jboss.mx.util.*;

public class Test {
	public void getDeploymentDescriptors() {
		String query = "jboss.management.local:*,j2eeType=EJBModule";
		MBeanServer server = (MBeanServer) MBeanServerLocator.locateJBoss();
		Set matches = server.queryMBeans( new ObjectName( query ), null );
		Iterator it = matches.iterator();
		while( it.hasNext() ) {
			ObjectInstance soi = (ServerObjectInstance) it.next();
			ObjectName objName = soi.getObjectName();

			String objectNameString = objName.toString();
			MBeanInfo mbeanInfo = server.getMBeanInfo(objName);
			MBeanAttributeInfo[] attributeInfo = mbeanInfo.getAttributes();

			for( int a=0; a &lt attributeInfo.length; a++ ) {
				MBeanAttributeInfo attrInfo = attributeInfo[a];
				if( !"deploymentDescriptor".equals( attrInfo.getName() ) ) {
					continue;
				}
				AttrResultInfo attrResult = Server.getMBeanAttributeResultInfo(objectNameString, attrInfo);
				String attrValue = attrResult.getAsText();

				//prints out the "ejb-jar.xml"
				System.out.println( attrValue );
			}
		}
	}
}
Criado 18 de dezembro de 2006
Ultima resposta 17 de jan. de 2007
Respostas 1
Participantes 1