JSPとサーブレットでのJARの使い方
現在,jspやサーブレットにダウンロードしてきたjarの中のクラスを使おうとするとエラーをはいてしまいます。自分的にはエラーの原因はなんかしらの設定かソースがおかしいのではないかと考えております。なので自分がやった設定の手順とソースを説明させていただき、そこでおかしいと思った点を指摘していただきたいと思い投稿させてもらいました。
開発環境はEclipseとTomcatを合したものなのですが、
まずダウンロードしてきたJARをデスクトップに置きました。
次にEclipseでjspのプロジェクトを作成し、
プロジェクトの設定で、外部JARの追加を選択しデスクトップのJARを追加しました。
次にエラーが出るまでのソースを説明させていただくと、
まずJSPの方は
<%@ page language="java" contentType="text/html; charset=windows-31j"
pageEncoding="windows-31j"%>
<%@ page import="java.util.Date" %>
<%@ page import="com.lowagie.text.Document" %>//これがダウンロードしてきたjarのクラス
この様に書いたところEclipseのエディタ上ではエラーは出ないのですが、
デバックすると、
説明
The server encountered an internal error () that prevented it from fulfilling this request.
例外
org.apache.jasper.JasperException: JSPのクラスをコンパイルできません:
というエラーが出てしまいます。なお4行目をコメントアウトすると正常に動作します。
次にサーブレットの方は
import java.io.*;
import com.lowagie.text.Document;//こっちはこのimport文ではエラーが出ない
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class selfreport_Pdf extends javax.servlet.http.HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Document doc = new Document();//ここでエラーがでる
こちらもEclipseのエディタ上ではエラーは出ないのですが、デバックして
jspからサーブレットにsubmit(?)をすると
説明 The server encountered an internal error () that prevented it from fulfilling this request.
例外
javax.servlet.ServletException: サーブレットの実行により例外を投げました
原因
java.lang.NoClassDefFoundError: com/lowagie/text/Document
selfinfo.selfreport_Pdf.doGet(selfreport_Pdf.java:29)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
この様なエラーが出ます。なおこちらはDcoment doc = enw Docment()
の処をコメントアウトすると、正常に動作します。またこのプログラムを
最も基本的なjavaアプリケーションに落とし込んで実行すると、正常に動作します。
また自分はjsp初心者なので、何か書き損じている点があるかもしれません。
もしそのような点があった場合はお手数ですが書いていただけると、後で補足させていただきます。
お返事おまちしております。
お礼
回答ありがとうございました。 その後、genjarというOSSで依存関係を自動で抽出してくれるということを知りました。 http://genjar.sourceforge.net/