JBOSS AS 7自定义类加载器无法正常工作

时间:2013-08-27 20:43:10

标签: jboss osgi jboss7.x classloader

我们最近搬到了JBOSS AS 7.由于它基于OSGi并且所有模块都是隔离的,我们遇到了问题。

我们的一个jar是由来自JBOSS模块之外的指定目录的URLclassloader加载的。

Class[] parameters = new Class[]{URL.class};
URLClassLoader sysloader = (URLClassLoader)ClassLoader.getSystemClassLoader();
Class sysclass = URLClassLoader.class;
Method method = sysclass.getDeclaredMethod("addURL",parameters);
method.setAccessible(true);
method.invoke(sysloader,new Object[]{ flist[i].toURI().toURL()});

flist [i]包含要加载完整路径的jar。

以前曾经工作过的地方,在AS 7之后,这个类没有被加载。

我知道您可以将这些jar添加到modules文件夹并指定依赖项。但我们希望这一点有效。

有解决方法吗?

1 个答案:

答案 0 :(得分:0)

正如其他人所说,JBoss AS 7不是基于OSGi,它使用自己的模块系统(JBoss Modules)。你正在做什么(对类加载器的反思)是违反任何规则的,完全不受支持并且只是偶然地工作。你应该如下: