问题简述:
1)was环境:WebSphere Application Server8.5.5;
2)linux服务器:CentOS7
3)项目介绍:商业银行电信反诈骗项目
4)异常描述:项目开发完毕后,在本地测试(jetty6、tomcat6)无任何异常。部署到was环境就报各种异常,有业务方面的异常、也有非业务方面的异常。比如:
java.lang.NoSuchMethodException
java.lang.NullPointerException
java.lang.ClassNotFoundException
因为在开发环境测试是没有问题的,不可能是应用层面的问题,后来想到可能是was自带的jar与应用中的jar冲突(主要是版本不一致),最终从:java.lang.NoSuchMethodException入手,通过创建共享库解决了这个问题。
解决思路:
1)通过诡异的异常信息:NoSuchMethodException、ClassNotFoundException等,找出冲突的jar;
2)在服务器(任意路径下均可)创建共享库文件夹,将应用中冲突的jar包放置到该共享库文件夹中,并对该文件夹授权;
3)删除应用war包中冲突的jar,即放入服务器共享文件夹下的jar;
4)登录was控制台,创建共享库;
5)部署应用;
6)引用共享库;
7)启动was,访问应用;
补充:由于撰写博客时服务器网络不通,对于如何“创建共享库”和“引用共享库”的过程无法配图,欢迎跟帖留言。