JBOSS AS 7自定义类加载器不工作
我们最近转向JBossAS7,因为它基于OSGi,所有模块都是隔离的,所以我们遇到了一个问题 我们的一个JAR由URLclassloader从JBOSS模块之外的指定目录加载JBOSS AS 7自定义类加载器不工作,jboss,osgi,jboss7.x,classloader,Jboss,Osgi,Jboss7.x,Classloader,我们最近转向JBossAS7,因为它基于OSGi,所有模块都是隔离的,所以我们遇到了一个问题 我们的一个JAR由URLclassloader从JBOSS模块之外的指定目录加载 Class[] parameters = new Class[]{URL.class}; URLClassLoader sysloader = (URLClassLoader)ClassLoader.getSystemClassLoader(); Class sysclass = URLClassLoader.class;
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文件夹并指定依赖项。但我们希望这能奏效
有解决方案吗?正如其他人所说,JBossAS7不是基于OSGi的,它使用自己的模块系统()。您所做的(类加载器上的反射)是违反任何规则的,完全不受支持,并且只是偶然工作的。你应该做到以下几点:
- JAR的JBoss模块(链接用于数据库模块,但应可用于任何JAR)
- 用于引用该模块
- JAR的JBoss模块(链接用于数据库模块,但应可用于任何JAR)
- 用于引用该模块