問題描述:
用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圖。