- PR -

サーブレットのコンパイルエラーについて

1
投稿者投稿内容
未記入
会議室デビュー日: 2004/09/08
投稿数: 8
投稿日時: 2004-09-08 20:30
はじめまして。よろしくおねがいします。
サーブレットのコンパイルができず弱っています。

C
|
JSP
|
Example
|----------|
WEB-INF lib
| |
classes servlet-api.jar
|
ecsite
|
Item.class(通常のJAVAクラス) ItemCollection.class(通常のJAVAクラス)
ItemDAO.class(通常のJAVAのクラス)

環境はWindowsXP−HOMEEDITIONで、TOMCAT5です。
上記のようなディレクトリ構造で、新に「MainController」というクラス(サーブレット、Item,ItemColloction,ItemDAOクラスを使っています、継承はしていません)をコンパイルしたいのですが、エラーがでます。コンパイル方法としては
WEB-INFに移動し、「javac -d classes -classpath C:\JSP\Example\lib\servlet-api.jar MainController.java」と打ちます。環境変数の設定がうまくいかないので直接jarファイルを読み込んでいます。
すると「シンボルが解決できません」というエラーがでます。ItemCollction,ItemDAOクラスを使っているところでエラーになっているようなのですが、原因がわかりません。
※すべて「ecsite」というパッケージに含まれています。

package ecsite;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;

public class MainController extends HttpServlet{
public void init() throws ServletException{
↓ここでエラーが起きる     ↓ここでエラーが起きる
ItemCollection collection = new ItemDAO().findAll();

ServletContext application = getServletContext();
application.setAttribute("collection",collection);
}

public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException{

doPost(request,response);
}

public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{

ServletContext context = getServleContext();
RequestDispatcher rd = context.getRequestDispatcher("/jsp/top.jsp");
rd.forward(request,response);
}
}

なぜこのエラーがでるのか、という事と、
コンパイルできる方法がわかりません。
お分かりになる方がいらっしゃいましたら
ご教示をよろしくお願いします。


MINE
会議室デビュー日: 2003/07/02
投稿数: 17
投稿日時: 2004-09-08 20:42
ecsiteディレクトリにクラスパスを設定していないからではないでしょうか?
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2004-09-08 21:10
javac -d classes -classpath classes;C:\JSP\Example\lib\servlet-api.jar MainController.java

でどうですか?
同一パッケージだからクラスパスに設定しなくていい、とか思っていませんか?
きりん
会議室デビュー日: 2004/08/17
投稿数: 16
投稿日時: 2004-09-09 02:31
もしこのソースをコピペで掲載されたのなら

ServletContext context = getServleContext();

の行で getServle になってますよ。
takayuki
会議室デビュー日: 2003/11/11
投稿数: 3
投稿日時: 2004-09-10 12:09

package宣言されていますので、
『C:\JSP\Example\WEB-INF\classes』
をクラスパスに通す必要があるのではないでしょうか?

いかがでしょうか?
1

スキルアップ/キャリアアップ(JOB@IT)