• 締切済み

ApachePOIでエラー

ApachePOI3.9をインストールして、ECLIPSに入れて、サンプルコーディングを試して見ました。 実行したところ、次のエラーが表示されました。 java.lang.NoClassDefFoundError: org/apache/poi/ss/usermodel/WorkbookFactory コーディング(抜粋)は以下の通りです。 import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.WorkbookFactory; public void doNippou(HttpServletRequest request, HttpServletResponse response) { String path = getServlet().getServletContext().getRealPath("document"); FileInputStream fi = new FileInputStream(path + File.separator + "A4nippou.xls"); Workbook wb = WorkbookFactory.create(fi); Sheet sheet1 = wb.getSheetAt(1); response.setContentType("application/msexcel"); String fname = "A4nippouyyyymmdd.xls" ; // ファイル名を設定 response.setHeader("Content-Disposition", "attachment; filename=" + fname); OutputStream out = response.getOutputStream(); wb.write(out); out.close(); } 実行環境は、CentOS5,Tomcat5.0,jdk1.4です。 Javaのバージョンが1.4ではApachePOI3.9が動かないのでしょうか。 よろしくお願いします。

みんなの回答

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 tomcat5.0はもう使っていないので違っているかもしれませんが TOMCAT_HOME/shared/lib TOMCAT_HOME/webapps/アプリケーション/WEB-INF/lib このあたりがjarの検索範囲になるディレクトリだと思います。 上のような場所にjarを置いて試してみてください。

Horirin39
質問者

お礼

お礼が遅くなりました。 ありがとうございました。 教えていただきました場所にjarファイルを入れて、Tomcatを再起動し実行してみましたが、 HTTPステータス500のエラーが表示され、 java.lang.UnsupportedClassVersionError: org/apache/poi/ss/usermodel/WorkbookFactory (Unsupported major.minor version 49.0) とメッセージが出ています。 VersionErrorとのことですが、JavaかTomcatのバージョンが古いのではないでしょうか? よろしくお願いします。

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 tomcat内のクラスパスが通ってる部分にjarが配置されていますか?

Horirin39
質問者

補足

ご回答ありがとうございます。 さっそく、/TOMCAT/server/lib フォルダにjarファイルを入れて、TOMCATを再起動させてみましたが、同じメッセージが表示されます。 WorkbookFactoryクラスは、poi-ooxml-3.9-20121203.jarのorg.apache.poi.ss.usermodelの中にあることを確認しています。 何か他の原因が考えられますでしょうか? よろしくお願いします。

関連するQ&A