【发布时间】:2013-01-31 19:07:56
【问题描述】:
我有一个已部署到 JBoss 7 的 WAR,它使用其上下文类加载器动态加载 jar 资源。
final ClassLoader cl = Thread.currentThread().getContextClassLoader();
propertiesUrls = cl.getResources(TRANSLATION_PROPERTIES);
但是上下文类加载器只在 WEB-INF/lib 文件夹中寻找资源
来自服务模块加载器的模块“deployment..war:main”的ModuleClassLoader
我如何在 jboss 中获取我拥有资源的特定模块的类加载器。我有需要在 JBOSS_HOME/modules/org/custom/ 中的自定义模块中加载的 jars...
【问题讨论】:
-
您的 WAR 中是否依赖于您创建的模块?
-
是的,我有一个 jboss-deployment-structure.xml,它将模块指定为捆绑在 war 的 WEB-INF 文件夹中的依赖项。 JBoss 容器本身似乎可以识别模块中的类。只是它从不同的类加载器加载(模块在 JBoss 7 中加载到它自己的类加载器中),我需要掌握类加载器。当前线程上下文类加载器始终是默认的战争加载器,但我如何进入模块类加载器。
-
没关系,我必须使用当前的类加载器而不是线程上下文类加载器。 this.getClass().getClassLoader() 而不是 Thread.currentThread().getContextClassLoader()
-
@abhishekhp 您可以将其添加为答案并将其标记为已回答
标签: classloader jboss7.x dynamic-class-loaders