アプリ版:「スタンプのみでお礼する」機能のリリースについて

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が動かないのでしょうか。

よろしくお願いします。

A 回答 (2件)

こんにちは。



tomcat5.0はもう使っていないので違っているかもしれませんが

TOMCAT_HOME/shared/lib
TOMCAT_HOME/webapps/アプリケーション/WEB-INF/lib

このあたりがjarの検索範囲になるディレクトリだと思います。

上のような場所にjarを置いて試してみてください。
    • good
    • 0
この回答へのお礼

お礼が遅くなりました。
ありがとうございました。

教えていただきました場所にjarファイルを入れて、Tomcatを再起動し実行してみましたが、
HTTPステータス500のエラーが表示され、
java.lang.UnsupportedClassVersionError: org/apache/poi/ss/usermodel/WorkbookFactory (Unsupported major.minor version 49.0)
とメッセージが出ています。

VersionErrorとのことですが、JavaかTomcatのバージョンが古いのではないでしょうか?

よろしくお願いします。

お礼日時:2013/04/11 11:42

こんにちは。



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

この回答への補足

ご回答ありがとうございます。

さっそく、/TOMCAT/server/lib フォルダにjarファイルを入れて、TOMCATを再起動させてみましたが、同じメッセージが表示されます。

WorkbookFactoryクラスは、poi-ooxml-3.9-20121203.jarのorg.apache.poi.ss.usermodelの中にあることを確認しています。

何か他の原因が考えられますでしょうか?
よろしくお願いします。

補足日時:2013/04/04 11:01
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!