TomcatでサーブレットとJSPの勉強をしています

このQ&Aのポイント
  • TomcatでサーブレットとJSPの勉強をしています。サーブレットはTomcat-conf-server.xmlに設定を追加し、動作確認ができました。しかし、JSPは500 Internal Servlet Errorが表示されて実行できません。
  • 開発環境はRedHatLinux7.2、Java2 SDK 1.3.0、Jakarta Tomcat 3.2.4です。環境変数はJAVA_HOME=/usr/java/jdk1.3.0_02、TOMCAT_HOME=/usr/src/jakarta/tomcat、PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/lib/servlet.jar、CLASSPATH=です。
  • 質問文章からセンセーショナルなタイトルと要約文を作成し、ハッシュタグを5つ生成してください。
回答を見る
  • ベストアンサー

困ってます

自分は今TomcatでサーブレットとJSPの勉強をしています。 サーブレット(hello.class)はTomcat-conf-server.xmlに <Context path="/test"    docBase="webapps/test" crossContext="false" debug="0" reloadable="true" > </Context> を追加したことにより http://localhost:8080/test/servlet/hello で動作は確認しました("Helloworld"の表示のみ) JSP(hello.jsp)は Error: 500 Internal Servlet Error:が表示されて実行できません。 ちなみにhello.jspはtestディレクトリの直下に保存しています。 ・hello.jspのスクリプト <%@page contentType="text/html;" %> <html> <head> <title>JSPTEST</title> </head> <body> <% out.println("HELLO WORLD!"); %> </body> </html> ※ちなみにcontentType="text/html;charset=Shift_JIS"とすると  ページが見つからないというエラーになりました。 ・JSPファイルを表示するアドレス http://localhost:8080/test/hello.jsp 開発環境は RedHatLinux7.2 Java2 SDK 1.3.0 Jakarata Tomcat 3.2.4 で、 環境変数は JAVA_HOME=/usr/java/jdk1.3.0_02 TOMCAT_HOME=/usr/src/jakarta/tomcat PATH=$PATH:$JAVA_HOME/bin:$TOMCAT_HOME/lib/servlet.jar CLASSPATH=. です 何か分かる事がありましたらご教授御願い致します。

  • Java
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
  • Harry_
  • ベストアンサー率55% (36/65)
回答No.2

すいません。これ以上わからないです。 こちらは環境は全然ちがうのですが、(Win2k, tomcat4.0.3, j2sdk1.4) こちらでは、docBase="test" に変えたらちゃんと表示できました。 ちなみに変えなかったら、404のエラーがでます。 500のエラーの中に、なにかヒントになるような メッセージはないですか。

takekun22
質問者

補足

問題解決しました! 環境変数を今まで、rootユーザではルートディレクトリ内の.shrc、一般ユーザではルートディレクトリの.bashrcに設定しており、 rootユーザでルートディレクトリの.shrcの内容を削除し、rootユーザのルートディレクトリの.bashrcに環境変数を設定をするとうまく動作しました。 分かってみるとすごく単純な事でしたが、1週間近く本気で悩んでました。 今回はどうもありがとうございました。 また何かありましたら宜しく御願い致します。

その他の回答 (1)

  • Harry_
  • ベストアンサー率55% (36/65)
回答No.1

server.xml の docBase を、 webapps/test ⇒ test に変えたらダメですか?

takekun22
質問者

補足

回答ありがとうございます。 ディレクトリの構造について説明不足でした。申し訳ございません。 ディレクトリの構造は tomcat-webapps-test-WEB-INF-classes-サーブレットのクラスファイル | -hello.jsp となっています。 >webapps/test ⇒ test に変えたらダメですか? testに変えたのですが、うまく動作しませんでした。 なにかweb.xml等、設定が足りないのでしょうか?

関連するQ&A

  • JSPのページが表示されません

    初めまして。 JSPについて質問があります。 現在OSはRedHatLinux7.2で、JDK、Tomcat、Pathの環境変数の設定を行ない、Tomcatを起動させ、Servletの動作("Hello World!"という文字列を表示するのみ)を確認した段階です。Servletの動作の際にTomcatをインストールした直下のconfディレクトリ内のserver.xmlに以下のスクリプトを追加しました。 <Context path="/test"    docBase="webapps/test" crossContext="false" debug="0" reloadable="true" > </Context> Servletに関しては上記の設定とTomcatとPCの再起動で動作を確認できたのですが、JSPの方は[Internal Error: 500 Servlet Error]が出て表示されませんでした。 ちなみにJSPファイルの位置はtestディレクトリ直下のjspディレクトリ内にあります。 ・hello.jspのスクリプト <%@page contentType="text/html;charset=euc-jp" %> <html> <head> <title>JSPTEST</title> </head> <body> <% out.println("HELLO WORLD!"); %> </body> </html> ・JSPファイルを表示するアドレス http://localhost:8080/test/jsp/hello.jsp ここで質問なのですが、JSPに関しても何か設定が必要なのでしょうか? もし何か分かることがありましたら、ご教授御願い致します。

    • ベストアンサー
    • Java
  • Tomcatインストール時に付属してあるexampleのJSPについて

    はじめまして。 JSPについて質問があります。 Tomcatインストール時に付属してあるデフォルトページのexampleのServletについては実行できたのですが、exampleのjspについては実行できず、ブラウザにエラーが表示されました。 エラー内容: ------------------------------ Error: 500 Location: /examples/jsp/num/numguess.jsp Internal Servlet Error: javax.servlet.ServletException: sun/tools/javac/Main (以下略) ------------------------------ ちなみに自分で作成したJSPファイルも実行できず、exampleのjspと全く同じ内容のエラー内容がブラウザに表示されました。 ちなみに開発環境は RedHatLinux7.2 Java2 SDK 1.3.0 Jakarata Tomcat 3.2.4 で、 環境変数は JAVA_HOME=/usr/java/jdk1.3.0_02 TOMCAT_HOME=/usr/src/jakarta/tomcat PATH=$PATH:$JAVA_HOME/bin CLASSPATH=.:/usr/java/jdk1.3.0_02/lib/tools.jar:$TOMCAT_HOME/lib/servlet.jar です。 クラスパスには、JDKのコンパイラ、サーブレットのコンパイラを設定しているのですが、設定に何か足りないのでしょうか? 大変困っています。 もし、何か分かる事がありましたら、ご教授御願い致します。

    • ベストアンサー
    • Java
  • クラスファイルの配置について

    初めまして。 質問したいことがあります。 私の環境は OS:RedHatLinux7.2 JDK:1.3.0_02 Tomcat:ver3.2.4 です。 servletの動作について (1)tomcat/WEB-INF/test/classes/hello.class ("HelloWorld"という文字列を表示するクラス)で  アドレス→http://localhost:8080/test/servlet/helloと入力すると正常に動 作しました。 次に (2)tomcat/WEB-INF/test/classes/sample/hello.class ("HelloWorld"という文字列を表示するクラス)で  アドレス→http://localhost:8080/test/servlet/sample/helloと入力すると Error 500 Internal Servlet Errorというエラーが発生しました。 server.xmlには <Context path="/test"    docBase="webapps/test"    crossContext="false"    debug="0"    reloadable="true" > </Context> を追加しているだけなのですが、Tomcatではクラスファイルは絶対にclassesディレクトリの直下に配置しなければならないのでしょうか? (2)のclasses-sample-hello.classというように、classesディレクトリとクラスファイルの間にディレクトリが存在すると駄目なのでしょうか? もし何かわかることがありましたらご教授御願い致します。

    • ベストアンサー
    • Java
  • TOMCATインストール後、コンパイルエラーが起こってしまいます。

    WinXP(home)にTOMCATをインストールしサーブレット/JSPを勉強したいと思っているのでが、うまくいきません。 ○症状 TOMCATインストール語、「Hello Servlet」の文字を表示させるプログラムがコンパイルエラーになってしまいます。 プログラムコードに問題は無いとはずだと思い、TOMCAT以外に、「JRun」というソフトを入れて同じプログラムをコンパイルすると無事完了し、「Hello Servlet」が表示できました。 ○質問 TOMCATのインストールがうまくいっていないのでしょうか? ○TOMCATの動作確認状況 startup.batファイル実行すると、2つ目のプロンプトウィンドウは下記の様になります。 ========================================= サービス Tomcat-Standalone を起動します Apache Tomcat/4.0 サービス Tomcat-Apache を起動します Apache Tomcat/4.0 ========================================== また、 「http://localhost:8080/」は無事に表示されます。 ○コンパイルエラー内容 C:\java_sample>javac -classpath %TOMCAT_HOME%\bin\servlet.jar HelloServlet.java HelloServlet.java:3: パッケージ javax.servlet は存在しません。 import javax.servlet.*; ^ HelloServlet.java:4: パッケージ javax.servlet.http は存在しません。 import javax.servlet.http.*; ^ HelloServlet.java:6: シンボルを解釈処理できません。 シンボル: クラス HttpServlet 以下省略 ご教授よろしくお願いします。

    • ベストアンサー
    • Java
  • Tomcat 4.1での配備方法

    Tomcat 4.0で動作していたアプリがTomcat 4.1だと動作しません。配備方法が変わったんでしょうか? 導入時のサンプル/examplesのサーブレット/JSPは動きますが、そのContext要素の上に記述したContextのdocBaseで指定したパスのWEB-INF/classes/*.classがブラウザから呼び出せないのです(localhost:8080/.../servlet/*)。ちなみに、ドキュメントルート直下にindex.htmlをおいたところ、問題なく参照できました(localhost:8080/.../index.html)。 よろしくお願いします。

    • ベストアンサー
    • Java
  • tomcatのエラー処理について

    Tomcatが設定できなくなんとか試行錯誤をしているうちにlogsディレクトリの中にやっと(今までは全然表示されず)エラー内容(2つのファイル)が以下ように表示されてきました。処理の仕方がわかりません。アドバイスお願いします。 一つ目は jsper.logファイル 2002-02-03 00:26:34 - Scratch dir for the JSP engine is: C:\JAKART~1             \work\localhost_8080%2Fexamples 2002-02-03 00:26:34 - IMPORTANT: Do not modify the generated servlets 二つ目は servlet.logファイル 2002-02-03 00:26:34 - path="/examples" :jsp: init 2002-02-03 00:26:34 - path="/admin" :jsp: init 2002-02-03 00:26:35 - path="" :jsp: init 2002-02-03 00:26:35 - path="/test" :jsp: init というような内容です。このあとどうすれば???????? 現在以下の環境内容です。 win98SE tomcat3.2.4 PATH=C:\jdk1.3.1_01\bin;c:\Jakart~1t\bin SET JAVA_HOME=C:\jdk1.3.1_01 SET TOMCAT_HOME=C:\Jakart~1 SET CLASSPATH=%TOMCAT_HOME%\lib\servlet.jar;%JAVA_HOME%\lib\tools.jar

  • JSP>errorPageで指定したページが文字化けしてしまう

    WindowsXP+tomcat5.0.28にて hello.jsp -------------------------------------------------------------- <%@ page language="java" contentType="text/html;charset=Windows-31J"%> <%@ page errorPage="error.jsp" %> error.jsp ------------------------------------------------------------- <%@ page language="java" contentType="text/html;charset=Windows-31J"%> <%@ page isErrorPage="true" %> ---------------------------------------------------------------------- hello.jspの中で例外が発生するとerror.jspが呼ばれますが、error.jspの内容が文字化けしてブラウザに表示されます。 でも、error.jspを直接ブラウザから呼ぶと文字化けが起きません。 JSPの例外処理機構で呼ばれた時だけ文字化けしているように見えます。解決方法ありますか?

  • 全然分かりません・・

    J2SEとtomcat5.0をインストールし、C:\j2sdk1.4.2_11とC:\Tomcat5としてインストールしました。 環境変数は変数名/変数値 CATALINA_HOME/C:\Tomcat5 CLASSPATH/.;%JAVA_HOME%\lib\tools.jar;C:\Tomcat5\common\lib\servlet-api.jar JAVA_HOME/C:\j2sdk1.4.2_11 PATH/%JAVA_HOME%\bin と設定しました。 普通にJAVAなども使えてtomcatも起動できるのですが、 http://www.hellohiro.com/servlet.htmで、HelloWorldServlet.javaをDL、コンパイルしclassを作って、C:\Tomcat5\webapps\servlets-examples\WEB-INF\classesなどに置いたのですが、 http://localhost:8080/examples/servlet/HelloWorldServletを実行しても HTTPステータス 404 - /examples/servlet/HelloWorldServletのエラーとなってしまいます。 色々なサイトを回って試したのですが、http://f44.aaa.livedoor.jp/~takamura/www/tomcat.htmlのサイトを参考に、 http://localhost:8080/のTomcat Administrationからログインして説明通りにやろうとしたら、CATALINA_HOMEの間違ったうちにやってしまったのかわかりませんが、コンテキストは既に存在しています、となってしまったりしました。 そのへんはやる必要なかったのかもしれませんが、tomcat5.0の場合は、 C:\Tomcat5\conf\Catalina\localhostに、C:\Tomcat5\webapps\の中に作成した自分で決めた名前のxmlを作成したりするらしいのですが、わかりやすく解説してあるサイトはありますでしょうか・・? tomcatを起動している最中に、http://localhost:8080/に続くアドレス で自分で用意したclassとxmlから、一番簡単なサーブレットを動かしてみたいです。よろしくお願いします。

  • サーブレットについて

    WIN2000 j2sdk1.4.1_06 Tomcat 4.1.24です。 よろしくお願いします。 困っているのは、はサーブレットが動かないということです。 コンパイルすると C:\j2sdk1.4.1_06\bin>javac Hello.java パッケージ javax.servlet は存在しません。 import javax.servlet.*; というエラーになります。 j2sdkとトムキャットをインストールし、 PATH等の設定も行い Tomcatの起動も行なってからやっているのですが、 JSPはちゃんと表示してくれるのですが、 サーブレットだけ動きません。 APIを見ると確かに標準のものには載っておらず サーブレットの方に載っているようなのですが、 何か他に設定もしくは、インストールする必要が あるのでしょうか?

    • ベストアンサー
    • Java
  • ServletのWebアプリケーションの追加方法

    Servletド素人なのですが、なんとかtomcatをセットアップして悪戦苦闘しています。 ServletはWebアプリケーションという単位で動くと聞きまして、自分のホームにそれ専用のディレクトリを作ってみたのですが、うまくtomcatから認識されないんです。 /home/user/hoge とか作って、tomcatのserver.xml に <Context path="/hoge" docBase="/home/user/hoge" debug="0" reloadable="true" ></Context> と書いたのですが、いざtomcatをスタートさせると AutoWebApp: Loaded from config: DEFAULT:/hoge WorkDirSetup: Creating work dir /usr/local/jakarta-tomcat-3.3.1/work/DEFAULT/hoge となってしまい、自分のホームにならないんです。 仕方なくそこにファイルを置いて、http://localhost/hoge/ 等と打っても、全部404になってしまいました・・・。 もちろん、http://localhost/examples/ ではちゃんとtomcatのデフォルトが出てきます。 わかりますでしょうか・・・。

    • ベストアンサー
    • Java

専門家に質問してみよう