经验共享:解决一个weblogic的jar包冲突问题
j2ee应用是在tomcat环境下开发和测试的,没问题,移植到WebLogic Server( 版本: 10.3.5.0)之下,大部分功能都正常,就是附件同步有问题
,报找不到 org.apache.commons.net.XXX.yyy(),但是此文件明明在 WEB-INF/lib 下面,以为是部署缓存问题,删除了部署,部署了又删除,还是搞不定,郁闷的一米。
后来一想,可能是jar包冲突问题,于是单独把jar包拷贝到weblogic的domain下/app/weblogic/Oracle/Middleware/user_projects/domains/jjjc_domain/lib下,重启weblogic后,他会自动把jar加载到classpath里,
<2011-10-27 下午08时15分29秒 GMT+08:00> <Notice> <WebLogicServer> <BEA-000395> <Following extensions directory contents added to the end of the classpath:
/app/weblogic/Oracle/Middleware/user_projects/domains/jjjc_domain/lib/commons-net-3.0.1.jar>
再试,还是不管用。再想,可能不是和domain的包冲突,可能就是和weblogic的全局包冲突,于是find
[weblogic@jjjc1 ~]$ cd Oracle/Middleware/
[weblogic@jjjc1 Middleware]$ find . -name *net*.jar
在众多的结果里挑选了一下,确定目标就是
./modules/com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar
调包前备份老jar,以免宕机
[weblogic@jjjc1 Middleware]$ mv ./modules/com.bea.core.apache.commons.net_1.0.0.0_1-4-1.jar .
[weblogic@jjjc1 Middleware]$ mv ./user_projects/domains/jjjc_domain/lib/commons-net-3.0.1.jar ./modules/
重启weblogic,重新部署app,一切如想象中的OK。
记得五六年前,折腾websphere6的时候,也遇到过类似的问题,看来经验还是值钱的。
题外话:commons-net包,最新的都3.0版本了,为啥weblogic还在用1.0的包,咋不与时俱进呢????