- - PR -
サーブレットが動きません
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2004-04-14 19:47
お世話になります。JSP初心者です。TOMCAT5.0+APPACHE2.0.49+j2sdk1.4.1_05+XPで勉強しております。TOMCATのwebappsにmyJSPフォルダを作り、その中のclassesに以下のjavaソースをコンパイルしたclassを置いて実行して、うまくHelloWorldが表示されていたのですが、ある時から、TOMCATなど再起動しても動作しなくなりました。最初から動かなければ設定が悪いことが分かるのですが、ある時からだめになり、理由がわかりません。
エラーはHTTP:404(ファイルがない)です。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorld extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html><head>"); out.println("<title>Sevlet Test</title>"); out.println("<meta http-equiv=\"Content-Type\" content=\"text/html;charset=X-EUC-JP\">"); out.println("</head>"); out.println("<body bgcolor=\"#FFFFFF\">"); out.println("Hello World"); out.println("</body></html>"); out.flush(); out.close(); } } web.xmlは <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> <web-app> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloWorld</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/servlet/HelloWorld</url-pattern> </servlet-mapping> </web-app> server.xmlには <Context path="/JSP" docBase="myJSP" reloardable="true" /></Context> また、confのweb.xmlのinvokerのコメントもはずしてみましたがだめでした。 初歩的なことかとは思いますが、調べても分かりませんでしたので、よろしくお願いいたします。 |
|
投稿日時: 2004-04-14 20:08
どのようなURLでアクセスして駄目なのかと言うことと、
${TOMCAT_HOME}/webapp以下のディレクトリ・ファイル構成を 具体的に書いていただければ回答しやすいかと思います。 |
|
投稿日時: 2004-04-15 08:58
レスありがとうございます。重要な事を書くのを忘れておりました。すみません。http://localhost/myJSP/servlet/HelloWorldです。WEB-INFの中にはclasses(この中にHelloWorld.class)、空のlibフォルダ、web.xmlが入っております。このまま最初は動いていた構造で今もその状態で動きません。よろしくお願いいたします。
|
|
投稿日時: 2004-04-15 09:11
すみません、まちがってました。server.xmlは。<Context path="/myJSP" docBase="myJSP" reloardable="true" />で、構造はwebapps\myJSP\WEB-INFでした。
|
|
投稿日時: 2004-04-15 09:37
リリーさん、こんにちは。
http://localhost:8080/myJSP/servlet/HelloWorldと、 ブラウザからApacheを経由しないでアクセスするとどうなりますか? Tomcatのログファイルは確認されましたか? [ メッセージ編集済み 編集者: taiping 編集日時 2004-04-15 09:39 ] |
|
投稿日時: 2004-04-15 10:04
ありがとうございます。TOMCATのみでアクセスしても結果は同じです(404エラー)。またログにはServlet mapping specifies an unknown servlet name invokerがでるのでWEB.XMLがおかしいのかとは思うのですが、どこかおかしいでしょうか?
|
|
投稿日時: 2004-04-15 10:21
おそらくそのメッセージそのままではないでしょうか。 servlet-mapping要素でinvokerと言う名前のサーブレットをURLに割り当てているけど、 肝心のinvokerと言う名前のサーブレットが存在しないと言うことだと思います。 servlet要素でinvokerと言う名前のサーブレットを定義している個所が あって、それがコメントアウトされていると思うのですが、どうでしょうか? |
|
投稿日時: 2004-04-15 10:38
ありがとうございました。動くようになりました。確かにconfの中のinvokerのところのコメントを一箇所はずしていたのですが、(jacartaのページでTOMCAT4.X以上はinvokerのところのコメントをはずさないと動かないとあったので)もう一箇所はずさないと動かないのですね。
ではなぜ最初は動いていたのか・・・・とっても不思議なんですが一応解決ということで。 本当にお忙しい中初歩的な質問にお付き合いいただきましてありがとうございました。 もっと勉強いたします。 |
1
