现象:今日在解析*.nc文件时,引入了一个叫netcdfAll-4.3.jar的包,在主函数测试下,程序运行正常,Tomcat发布下,正常,但是放到weblogic下时,整个项目启动不了。
解决思路及过程:用二分法的原理先找出具体冲突的包(放入
netcdfAll-4.3.jar,再放入一半的jar包,如果没冲突,那冲突的包肯定在另一半里,如果冲突,那冲突的包在这边肯定有,另一边待定,以此类推),最终查出冲突的包为spring-modules.jar,查看lib下,发现有几个版本的spring-modules.jar,删除掉剩余一个spring-modules.jar,问题依旧,对于整个项目框架而言,spring-modules.jar具有重要作用,它是不可能被删掉的,因此肯定是netcdfAll-4.3.jar中存在多余的东西,毕竟在我写的程序中只是引用了其中少量的方法,因此考虑给netcdfAll-4.3.jar是一个不错的方向。先在网上搜索是否有瘦身版的jar包,当然是先去其官网看看,进入http://www.unidata.ucar.edu/downloads/netcdf/index.jsp,可以看到其稳定版本(NetCDF-Java Stable Releases/releases)中有两个版本,2.2和4.0,我们选择2.2进入到http://www.unidata.ucar.edu/downloads/netcdf/netcdf-java-2_2/index.jsp,可以看到其中一个404KB的ncCore-2.2.22.jar,就是它了,点击下载,死活下载不下来,根据ftp特点,删除掉一部分地址,进入到ftp://ftp.unidata.ucar.edu/pub/netcdf-java/,根本没有下载地址的目录,顺着它显示的目录继续,最终进入到ftp://ftp.unidata.ucar.edu/pub/netcdf-java/v4.2/,可以看到它下面有一个675KB的ncCore-4.2.jar,就是它 了,顺利down下来替换netcdfAll-4.3.jar,tomcat和weblogic中程序均运行正常,到此,问题告一段落。
总结:ftp://ftp.unidata.ucar.edu/pub/netcdf-java/v4.2/ncCore-4.2.jar,用这个jar替换netcdfAll-4.3.jar。