java - 如何从 JBoss 5.x 下的 JavaEE 应用程序获取类加载器 ObjectName

标签 java jboss jakarta-ee jboss5.x

我们的 JavaEE 应用程序有一个服务,负责根据数据库中存储的配置安装和启动其他服务。服务是使用

安装的
ServiceControllerMBean.install(
    org.w3c.dom.Element element,
    javax.management.ObjectName objectName)

方法。此方法需要类加载器 ObjectName 作为第二个参数。在 JBoss 4.x 下,我们使用以下 hack 来获取类加载器名称:

final ServiceControllerMBean serviceController = 
    (ServiceControllerMBean) MBeanProxy.get(
        ServiceControllerMBean.class,
        ServiceControllerMBean.OBJECT_NAME, server);

final ClassLoader = serviceController.getClass().getClassLoader();

final ObjectName loader = new ObjectName(
    "jmx.loading:UCL=" + Integer.toHexString(classLoader.hashCode()))

但是这在 JBoss 5.x 下不起作用,因为类加载器命名已更改。

有人可以建议一种在 JBoss 5.x 下获取类加载器名称的方法吗?

提前谢谢

最佳答案

找到了该问题的文档:

ClassLoader Configuration

Classloading UseCase

很高兴获得洞察力。

我终于找到了一个不错的论坛主题:

http://www.coderanch.com/t/464514/JBoss/Class-Loading-Configuration

其他信息:

ClassLoader loader = Thread.currentThread().getContextClassLoader();
System.out.println( loader );  // sun.misc.Launcher$AppClassLoader@a12a00
loader = ThreadClassloader.class.getClassLoader();
System.out.println( loader );  // sun.misc.Launcher$AppClassLoader@a12a00

希望这可以帮助您从代码中获取更多信息。

关于java - 如何从 JBoss 5.x 下的 JavaEE 应用程序获取类加载器 ObjectName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1576519/

相关文章:

java - 比较枚举 EL Jboss

java - 如何为 Kerberos 身份验证配置 JBoss EAP 6.3 WebApp

java - HASingleton 无法查找 JNDI bean

java - MyBatis - 在嵌套的 foreach 循环中迭代列表,它是 HashMap 的值

java - 向正则表达式添加异常(exception)(使用android studio)

java - 如果 tagdir 属性没有尾部斜杠,是否有任何 jsp 2.0 实现会强制出现错误?

java - 无法运行动态 Web 项目 - Java EE

java - 关于实体对象中空值的最佳实践

java - Criteria Builder JOIN 未引用的表

java - 正则表达式有异常(exception)