问题很小,但是也很容易忽略。正如之前反反复复在websphere里设置应用的类加载顺序的时候,从来没去想这个调整真正改变了什么。
1. java的类加载器:
JAVA类加载器分为3层——引导加载器、扩展加载器、应用程序加载器,类加载遵循"父委托模式".
引导加载器(Bootstrap): 加载<JAVA_HOME>/jre/lib 下的vm.jar,core.jar等核心
扩展加载器(Extensions): 加载<JAVA_HOME>/jre/lib/ext 或者通过java.ext.dirs 这个系统属性指定的路径下的代码
应用程序加载器(Application): 加载java.class.path下的代码(就是我们程序及程序依赖的第三方类)
2. websphere类加载模型
JVM ClassLoader层(包含上述的JAVA 3个层次的类加载器)——>WebSphere Extensions Classloader——>WebSphere "server" Class loader——>Application Classloader(包含有Application Module Classloader和Web Module ClassLoader.这2个类加载器上可以设置类加载顺序)
3.默认类加载顺序(父类优先)
Websphere采用的是父类优先的类加载顺序。通过websphere控制台——故障诊断——类装入器查看器 我们可以看到一个应用在websphere上部署完成启动后真正形成的类加载层次:
如图,类加载层次是:
JDK扩展装入器(也就是java类加载器中的扩展加载器(Extensions))——应用程序装入器应用程序加载器(Application)——OSGI(was6.1新特性)装入、引导程序、类保护器——组合类装入器——组合类装入器
4.改变类加载顺序(应用程序优先)
这里是关键。我一直认为改变WAS中的类加载顺序,调整的是WAS扩展出来的那些类加载层次:也就是上面的“OSGI(was6.1新特性)装入、引导程序、类保护器——组合类装入器——组合类装入器”顺序的改变。
实际情况是:
可以看到,事实上的情况是,改变了类加载顺序之后,最低级的2个类加载器竟然排到了扩展加载器(Extensions)之上,仅在引导加载器(Bootstrap)之后,也就是说:
“应用程序优先”的类加载顺序的结果是:
引导加载器(Bootstrap)——原来最低级的web和module加载器——扩展加载器(Extensions)——应用程序加载器(Application)——was扩展classloader、WAS应用程序类加载器
5.额外的:
websphere能把类加载器提高到这么高的层次,不知道是否是因为websphere6.1使用的JDK是IBM自己实现的而不是使用sun的JDK呢?
- 大小: 18.7 KB
- 大小: 27.3 KB
- 大小: 63.1 KB
- 大小: 59.3 KB
分享到:
相关推荐
按步骤详细说明was(application WebSphere server)服务器对cas证书生成、SSL配置、类加载、数据源配置、部署等操作.doc
NULL 博文链接:https://xiaoxinshome.iteye.com/blog/1688607
webSphere指南webSphere指南webSphere指南webSphere指南webSphere指南
websphere设计
WebSphere
jmx取websphere工具类 2017最新 8.5版本 com.ibm.ws.admin.client_8.5.0
有时在WebSphere Application Server喜欢的类加载器的顺序,防止旧版本的相似实例首先提到,因此,我们需要指定的顺序加载类
was相关资料: Websphere安装步骤 websphere安装后配置说明 Websphere实用手册 WebSphere+v6.1配置文档
第一部分 Websphere MQ原理和体系结构 11 第一章Websphere MQ原理 11 目标 11 1.1中间件 11 1.1.1中间件的优点 11 1.1.2中间件的分类 12 1.2三种通信技术的比较 13 1.3 WebSphere MQ的原理 15 1.4 WebSphere MQ的...
websphere commerce的使用即websphere commerce图解.在网上扒了半天才找到的稀品啊!IBM创建商品店铺(websphere commerce).pdf 一些其他的相关资料: ...
websphere7.0websphere7.0
WebSphere下的所有jar文件名和路径
WebSphere Application Server v7.1互补产品 WAS v7.0 的价值在IBM z/OS WebSphere Application Server Version 7.0 特色 WebSphere Application Server Version V7.0技术简介 WebSphere Application Server v...
WebSphere在Myeclipse中的整合,Myeclipse下增加WebSphere的支持
linux 下websphere安装linux 下websphere安装linux 下websphere安装linux 下websphere安装linux 下websphere安装
WebSphere MQ WebSphere MQWebSphere MQ WebSphere MQ
websphere 教程websphere 教程websphere 教程websphere 教程websphere 教程websphere 教程
Websphere6.0安装手册Websphere6.0安装手册Websphere6.0安装手册Websphere6.0安装手册Websphere6.0安装手册Websphere6.0安装手册
Websphere日常监控手册
WebSphere安装配置,JVM内存监控使用说明及线程池大小进行调整