本文以windows版websphere为样例
本文主要解决的是同一个web模块(web项目)下,有两个jar包里含有相同的包名类名的类,造成加载的类错误的问题(其他的也可以解决)
(附件中提供,查看类加载于哪的jsp)
其实解决这种问题最简单的办法就是,把想优先使用的jar包,解压成class,优先加载class。
websphere一个web模块下jar包加载的顺序,只能看,不能改,似乎可以尝试改jar名的方式调整jar包加载顺序,
websphere linux和windows版,不同补丁版本,加载的顺序可能是不同的,有的是乱序的,有的是按文件名排序的。乱序的是真够烂的。
一、查看类加载顺序
was控制台
企业应用程序 > jartest_war > 管理模块 > jartest.war
类装入器顺序
默认的是:类已装入并且是先使用父类装入器
另一个是:类已装入并且是先使用本地类装入器(父类最后)
(server1 类装入器策略为多个时,类装入方式默认也是 类已装入并且是先使用父类装入器,是灰色的,改不了,类装入器策略为单个是,可以修改)
应用程序--企业应用程序 > jartest_war > 管理模块 > jartest.war > 类装入器查看器
第二种查看方式:
故障诊断--类装入器查看器
类已装入并且是先使用父类装入器 时
1.jdk扩展,最先加载
可以把jar包放到这个下
D:/Program Files/IBM/WebSphere/AppServer/java/jre/lib/ext/
这样影响比较大,
我曾经放过hibernate-jpa-2.0-api-1.0.1.Final.jar到这个目录下
5.server1上使用共享库会影响这个
6.应用程序ear上使用共享库会影响这个
7.web模块war加载的类和jar包的顺序 web模块上使用共享库似乎没什么效果
在这可以看到jar包的加载顺序,有的版本加载的是乱序的,有的是按文件名顺序加载,顺序只能看改不了,
似乎可以通过改jar包名尝试调整顺序。
能用ear共享库解决的问题,就不用再server1上解决了
创建共享库
websphere7.0 创建共享库,引用共享库
http://happyqing.iteye.com/blog/2323338
WebSphere类加载问题的错误诊断
http://www.blogjava.net/jjshcc/archive/2014/05/13/413618.html
相关推荐
websphere7.0websphere7.0
WebSphere_MQ_V7.0.1.3 安装目录下\java\doc;\java\lib;\java\lib64. 包含com.ibm.mq.jar,com.ibm.mq.jmqi.jar,com.ibm.mq.axis2.jar,com.ibm.mq.commonservices.jar等等
在websphere8.5 下部署含有CXFwebservice的war包无法正常启动,...归根结底原因不是找不到类,而是发布后war下的jar与websphere自身平台下的jar冲突了,要解决此问题就要通过在websphere下建立共享库来根除,可参考附件
WebSphere7.0安装及部署手册及ojdbc6(jar)
Websphere7.0搭建集群手册
本资源中包括:was就是websphere was7.0的详细安装图解,was上新建server,以及在新server部署项目 包括配置jcc认证和数据源配置(JNDI)
WebSphere7.0、WebSphere7.0安装及部署手册
WebSphere Application Server Version 7.0 特色 WebSphere Application Server Version V7.0技术简介 WebSphere Application Server v7.0安装与迁移 WebSphere Application Server v7.0系统管理 WebSphere ...
WebSphere7.0数据源配置与应用程序发布之应用程序发布
WebSphere7.0在Windows下的安装
Win7(64位)下安装_部署WebSphere7.0.pdf
该文档详细介绍了websphere7.0配置oracle数据源以及部署war包的具体步骤,有图有真相!
Websphere7.0 for AIX部署手册;Websphere7.0 for AIX部署手册
如何在WebSphere中解决jar包冲突.doc
WebSphere7.0安装.doc 本手册适合WebSphere7.0的安装和卸载
如何在WebSphere7.0上部署发布项目.docx
IBM websphere 7.0 调优的基础教材,