java.lang.NoSuchMethodError: org.apache.poi.POIDocument

来源:互联网 发布:移动老用户优惠淘宝 编辑:程序博客网 时间:2024/06/05 20:50

问题描述:

用eclipse中新建了一个java项目,并使用PIO3.7读取word文档表格中的内容,使用Main方法可正确执行并获取表格内容。

但将类放到boup项目中后,再执行Main方法,会报:

Exception in thread "main" java.lang.NoSuchMethodError: org.apache.poi.POIDocument.<init>(Lorg/apache/poi/poifs/filesystem/DirectoryNode;)V
 at org.apache.poi.hwpf.HWPFDocumentCore.<init>(HWPFDocumentCore.java:146)
 at org.apache.poi.hwpf.HWPFDocument.<init>(HWPFDocument.java:218)
 at org.apache.poi.hwpf.HWPFDocument.<init>(HWPFDocument.java:186)
 at cn.ccb.boup.util.poi.OperateWord.readWordCell(OperateWord.java:37)
 at cn.ccb.boup.util.poi.OperateWord.main(OperateWord.java:87)

通过:打开项目的properties->java build path->order and export,发现poi的2个jar包放到了最后,把poi的包移到最上面。问题解决!

但在boup中启动项目的weblogic服务后,交易调用上面已实现的方法后,还会报: java.lang.NoSuchMethodError: org.apache.poi.POIDocument错误!

经过研究,发现是因为导入的pio-3.7.jar与sup平台自身所带的类库(poi-3.2-FINAL-20081019.jar)发生了冲突,出错时的“排序和导出”设置中,导入的pio-3.7.jar在sup平台自身所带的类库(poi-3.2-FINAL-20081019.jar)之后,导致在boup平台跑应用时,平台以poi-3.2-FINAL-20081019.jar为准,而认不到pio-3.7.jar,sup自带的poi-3.2-FINAL-20081019.jar中只提供了对Excel操作的API,而没有提供对Word操作的API,所以在真实跑应用时,会报: java.lang.NoSuchMethodError: org.apache.poi.POIDocument错误!

解决办法:在调用读取WORD表格内容所在的组件包上点右键,点属性,进入“排序和导出”标签页,将pio-3.7.jar的位置上移到poi-3.2-FINAL-20081019.jar之上,见2图。

 

0 0
原创粉丝点击