天天看點

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

問題描述:

用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圖。

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

繼續閱讀