When JBoss is run with these additional options, to expose JBoss MBean's in JConsole, application code that looks up the MBeanServer gets an NPE.
When one starts JBoss with the following options:
set JAVA_OPTS=%JAVA_OPTS% -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl set JAVA_OPTS=%JAVA_OPTS% -Djboss.platform.mbeanserver set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote
public static MBeanServer getDefaultMBeanServer() { // detects if we are running from within jboss... MBeanServer server = findMBeanServer("jboss"); // otherwise falls back to the default platform mbean server... if (server == null) { server = ManagementFactory.getPlatformMBeanServer(); } return server; } private static MBeanServer findMBeanServer(String agentId) { List servers = MBeanServerFactory.findMBeanServer(null); if (servers != null && servers.size() > 0) { for (Object object : servers) { MBeanServer server = (MBeanServer) object; if (server.getDefaultDomain().equals(agentId)) { return server; } } } return null; }