近日在做poi解析word的时候遇到一个很奇葩的问题,在本地环境测试都没有问题,当部署到测试环境(Linux系统,weblogic10.3.6服务器)一直解析不了,报找不到方法。
具体错误如下:
Caused by: java.lang.NoSuchMethodError: org.apache.poi.hwpf.model.CHPBinTable.<init>([B[BIILorg/apache/poi/hwpf/model/CharIndexTranslator;)V
1、这时我的第一反应就是缺少jar包,于是就从服务器上找对应的jar包,但是发现存在跟本地一样的jar包,
2、然后就想到时jar包冲突,想着难道是weblogic本身的jar包和我的项目的jar包冲突了吗?我从网上找到有可能是weblogic加载类顺序的问题,根据网上的提示找到对应的文件和参数,参数确实是已经优先加载项目中的参数了,我就把这个jar包去掉,结果报的错跟原先不一样了,报的是找不到类,说明这个jar包已经加载了,说明不是jar包冲突的原因。
纠结了差不多快一天了。
3、然后就开始各种问同事,问qq技术群,说明一下,我用的是poi-scratchpad-3.9.jar和poi-3.10.1-20140818.jar这两个,同事建议我两个都用3.12试试,我就试了试,竟然意外的好了,我就在想都用3.10试试,于是就下载一个3.10的,试了试也是可以的,说明难道是版本必须使用一样的吗,但是之前我用这两个jar包成功过,所以就没有往这方面想过。还是没有搞明白到底是什么原因造成的。
记下来以供之后遇到类似的问题做个参考。