jboss7.1.1类加载分析
来源:互联网 发布:unity3d人才过剩 编辑:程序博客网 时间:2024/06/06 01:02
org.jboss.modules
类ModuleClassLoader
java.lang.Object java.lang.ClassLoader java.security.SecureClassLoader org.jboss.modules.ConcurrentClassLoader org.jboss.modules.ModuleClassLoader
公共类ModuleClassLoader
- 扩展ConcurrentClassLoader
一个模块类加载器。该类的实例实现了模块中可用的类和资源的完整视图。与其对应Module
,具有访问类和资源的导出视图的API方法。
最开始进入执行类加载,如果在配置文件standalone.conf.bat(Windows)或standalone.conf(Unix / Linux)的-Djboss.modules.system.pkgs属性有值,则进行Classloader委托机制,否则进入自定义类加载器
private Class<?> performLoadClass(String className, boolean exportsOnly, final boolean resolve) throws ClassNotFoundException { if (className == null) { throw new IllegalArgumentException("name is null"); } for (String s : Module.systemPackages) { if (className.startsWith(s)) { return definingLoader != null ? definingLoader.loadClass(className) : findSystemClass(className); } } return performLoadClassChecked(className, exportsOnly, resolve); }
performLoadClassChecked之后调用,findClass()
进如findclass
/** {@inheritDoc} */ @Override protected final Class<?> findClass(String className, boolean exportsOnly, final boolean resolve) throws ClassNotFoundException { // Check if we have already loaded it.. Class<?> loadedClass = findLoadedClass(className);//是否已加载 if (loadedClass != null) { if (resolve) { resolveClass(loadedClass);//连接 } return loadedClass; } final ModuleLogger log = Module.log; final Module module = this.module; log.trace("Finding class %s from %s", className, module); final Class<?> clazz = module.loadModuleClass(className, exportsOnly, resolve);//重要,进行加载类 if (clazz != null) { return clazz; } log.trace("Class %s not found from %s", className, module); throw new ClassNotFoundException(className + " from [" + module + "]"); }
不贴代码了,累死了,所以呢对于jboss7 的rasp的类加载问题,与tomcat rasp类加载问题同出一处,却又有点小差异,做一记录!
阅读全文
0 0
- jboss7.1.1类加载分析
- Jboss7类加载器
- Jboss7.1.1安装
- jboss7.1.1 IP访问
- jboss7.1.1配置jndi
- jboss7静态变量由于不同的类加载器在两个模块中不相同
- Jboss7.1加载Module中的taglib
- jboss7.1.1配置mysql数据源
- jboss7.1.1配置mysql数据源
- JBoss7.1.1 安装、数据源配置
- Windows上部署JBoss7.1.1
- Jboss7.1.1 让log4j生效
- jboss7.1.1.Final安装配置
- Jboss7.1.1 Final 热部署
- JBoss7.1.1配置成windows启动服务
- JBoss7.1.1 实现支持热部署
- 类加载过程分析
- Java类加载分析
- python:线程的使用、线程共享全局变量、列表作为参数(全局变量)、避免全局变量被修改
- 比较forward动作指令和include动作指令
- spring boot的相关配置
- mongodb 开启和关闭的方法总结
- Tensorflow安装
- jboss7.1.1类加载分析
- VMware虚拟机中CentOS/redhat设置固定IP
- 3、ES6 === string 模板字符串
- 两个JS之间的函数互相调用
- NDB常见错误指南
- Nginx代理Redmine和Maven私服Nexus3.0配置
- JAVA内存泄露原因详细解释
- java的final关键字
- JAXB理解和应用实例