Servlet/JSPでの開発をTomcatで行っているのですが、webapps/examples/jspの
JSPサンプルが起動しませんでした。Internal Servlet Error 500が返されてしまい
ます。

開発環境
Windows 2000
Java2 SDK 1.3
Jakarata Tomcat 3.2.1

環境変数
TOMCAT_HOME=C:\jakarta-tomcat-3.2.1
JAVA_HOME=C:\jdk1.3
PATH=%PATH%;C:\jdk1.3\bin
CLASSPATH=%CLASSPATH%;C:\jakarta-tomcat-3.2.1\lib\servlet.jar

気になるのは、Oracle8iのトライアル版をインストールして
いる点です。Oracleをインストールすると以下のような環境変数が設定されます。

Oracleインストール後の環境変数Path
Path=C:\Oracle\Ora81\bin;C:\Program Files\Oracle\jre\1.1.7\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\jdk1.3\bin;C:\Oracle\Ora81\orb\bin

1.1.7のjreがかなり怪しいとは思うのですが。

もう一度、質問をまとめてみます。

・exampleサーブレットは動くが、example JSPだけが動かないのはどうしてでしょう?
・とにかくJSPだけを動かしたいのですが、方法はあるでしょうか?
 (JDBC接続を行うため、Oracleは削除できないという前提で)

皆様の知恵をお貸しください。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

わたしも似たような環境でtomcatを動かしているのでお答えします。



>1.1.7のjreがかなり怪しいとは思うのですが。

pathについては私も同じ物が入っていますが問題なく動いています。
なんならその部分だけメモっておいてpathから除外して一度ためしてみては?
servletが動いているなら大丈夫そうな気はするのですが・・・。

JSPが"Internal Servlet Error 500"を吐き出す理由は
経験上、コンパイル失敗だったと思います。
サンプルのコードに手を加えない限りミスがあるとは思えないので
おそらくコンパイルできないと思われます。

記憶が正しければ、JSPのコードはjavacを使ってコンパイルすると
tomcatのドキュメントに書かれていたと思うのでJDK周りの設定を
見直してみては?

怪しそうなのはJAVA_HOMEかな?
デフォルトのインストール先であればjdk1.3.0_2って感じだったと
思うけど・・・。

そうでなければいじった設定を見直してみましょ♪

P.S
PATH=%PATH%;%JAVA_HOME%\binとやると美しいですよ(笑)
    • good
    • 0
この回答へのお礼

>怪しそうなのはJAVA_HOMEかな?
>デフォルトのインストール先であればjdk1.3.0_2って感じだったと思うけど・・・。

Oracle用に設定された環境変数を一時的に退避させましたが、同様の現象が起こったので、以下の2点を試みました。

1. java.exeを起動しようとすると、「レジストリに登録してあるJREとバージョンが違う」などと言われ(英語)てしまったので、JavaSoft\Java Runtime Environment\CurrentVersion の値を1.1から1.3に修正。

2. 上記でjava.exeは起動するようになったが、JSPは起動できなかったので、KaZtoYouさんのヒントを頼りに、jdk1.3.0_002をインストール。

…すると、JSPが起動しました(!)。

しかし、変な話ですよね。
自宅のマシンでは、jdk1.3.0_002からjdk1.3へ戻したらこの問題が解消されたのに、今度は逆だなんて。

それと、起動時、タスクトレイにDuke君が表示されるのは正常なのでしょうか?

お礼のポイントを差し上げたいのですが、
締め切ってしまうとコメントが付けられないと思いますので、2,3日締め切らずにこのままにしておきますね。

KaZtoYouさんのヒントなくして解決はありませんでした。
本当にありがとうございました。

お礼日時:2001/05/02 12:59

バージョンの不整合はJDKを入れた後にoracleを入れたせいで起きたのかな?


それならもう一度jdk1.3.0_002なりjdk1.3なりをインスト-ルすることで
解決できたことに説明がつきそう。

まあinstallerを使わずにファイルだけ入れても起こかと思いますが・・・

>それと、起動時、タスクトレイにDuke君が表示されるのは正常なのでしょうか?

OS起動時からですか?それともtomcat?
どちらにしろ見たことがないです(苦笑)
Plug-inのJREの設定とかするやつでしょうか?
それなら普通はコントロールパネルを住処にしているはずですが・・・
    • good
    • 0
この回答へのお礼

>バージョンの不整合はJDKを入れた後にoracleを入れたせいで起きたのかな?
>それならもう一度jdk1.3.0_002なりjdk1.3なりをインスト-ルすることで
解決できたことに説明がつきそう。

そうですね、たぶんそういうことだと思います。

>OS起動時からですか?それともtomcat?
>どちらにしろ見たことがないです(苦笑)
>Plug-inのJREの設定とかするやつでしょうか?
>それなら普通はコントロールパネルを住処にしているはずですが・・・

Tomcat起動時でした。
しかし最初の起動時以来、もう彼は出現しなくなりました。Netscape 6を起動すればタスクトレイに鎮座することは分かっていたのですが、まさかトム猫で出るとは…。

予想外の展開に、コンピュータの神秘を感じています(笑)。

それにしても、質問にお付き合いいただき、ありがとうございました。感謝しております。

お礼日時:2001/05/02 18:09

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QTOMCATで\webapps\ROOTフォルダで自作のindex.jspを表示させるには。

いままで、TOMCATで\webapps\ROOT内に、
index.htmlをおき、トップページにしていましたが、
これを、index.jspに変えようと思いました。
しかし、index.jspは、もともと、TOMCAT宣伝用の
index.jspがあるので、これの名前を変えたのですが、
どうしても、index.jspでこの宣伝用のページ
が表示されてしまいます。
いままで使っていたので、なんとか現在の
ドキュメントルートでindex.jspを使いたいのですが、
どうしたらいいでしょうか。
(WEB-INF内のweb.xmlのservlet-mappingの設定が、
関係ありそうですが)。
お願いします。

Aベストアンサー

ROOT内のWEB-INF内にあるweb.xmlをエディタなどで開いてください。そして以下の部分を探してください。

<servlet-mapping>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<url-pattern>index.jsp</url-pattern>
</servlet-mapping>

この部分をコメントアウトします。つまり、手前に<!--を、後に-->をつけて、

<!--
<servlet-mapping>
<servlet-name>org.apache.jsp.index_jsp</servlet-name>
<url-pattern>index.jsp</url-pattern>
</servlet-mapping>
-->

こうするわけですね。
これで、http://localhost:8080/でwebapps/ROOT/index.jspが表示されると思います。

QTomcatインストール時に付属してある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のコンパイラ、サーブレットのコンパイラを設定しているのですが、設定に何か足りないのでしょうか?
大変困っています。
もし、何か分かる事がありましたら、ご教授御願い致します。

はじめまして。

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ファイルも実...続きを読む

Aベストアンサー

Tomcatのバージョンは何番でしょうか?
java.lang.NoClassDefFoundError: sun/tools/javac/Main
となっていますので、何らかの原因で、tools.jarへのCLASSPATH
の設定が無効になっているのだと思います。

QTomcatの「\WEB-INF\classes」内のクラスファイルが消えた。

サーブレットを勉強しています。Eclipseを使っています。

ある時、PCが固まり強制終了してしまったのですが、起動させると、\WEB-INF\classes内のクラスファイルが消えてしまっていました(!)。

Eclipseを使っているのですが、どうすればまたクラスファイルを生成することができるでしょうか?Eclipse上で、再度javaファイルを保存し直しても、生成されなません(当たり前?)。

よろしくお願いします。

Aベストアンサー

プロジェクトのリビルドで生成されませんか?

ちなみにオートビルドONにしてると
強制終了→Eclipse起動時にフルビルドされてたきがします。

QJDKのPATHの設定は何故?

 java初心者です、宜しくお願いします。
 Eclipseをpcに積もうとするとき、必ず先にJDkを積んでくださいとPCから要求されます。
 JDkを積んだ場合、必ずPATHの設定を要求されますが、これが理解出来ません。
 これはFileへアクセスするためのルートを指定するものだろうと思っていますが、普通のアプリケーションをDLした場合にはこのような作業は行いませんが、なぜJDkの場合にはこのような作業が必要になるのでしょうか。

 またどのようなアプリケーションの場合にはこれが必要になるのでしょうか。
 PATH設定の画面を見ると他にもPATHが自動的に?設定されているようでした。

 また、Eclipse単独(JDkを含んでいる?)ですべてインストールできるパックのようなものを以前DLしたことがあるのですが、何処かからDL出来るのでしょうか。
 この場合はなぜPATHを設定してやらなくても良いのでしょうか。

 以上、宜しくお願いします。

Aベストアンサー

自分はSunの人間ではないので、真意は不明ですが、
基本的にはKyon2_PaPaさんの言っていることに同意です。
PATHの自動設定なんて不要、セキュリティ的にいらない、
元からあった設定が変えられる、という意見があるからでしょう。

>ワードとかはインストール時には少なくともユーザーはPATHの設定を求められませんが。
>JDKはPATHの設定(環境変数の設定のことです)を求められます、その単純な違いと疑問
>の答えが知りたいだけなのですが。

JDKとワードを一緒に並べると余計混乱するでしょう。利用対象のユーザが違います。
ワードはPCのことをほとんど知らないユーザでも使用するソフトであり、
JDKはPG開発を行う開発者が使うものですから。

そもそも、インストールすれば自動でPATHが通ってる、という考え方もWindows独自のものです。
これはシングルユーザで、初心者でも使いやすいように、極力難しい部分は除く、
という思想によるものです。
他のOSでは、カレントディレクトリにPATHを通すこと自体控えているのに、
一般アプリ(JDK)が勝手にPATHをいじる、というのも考え物です。
JavaはWindowsだけのものではなく、いろんなOSで使われるのが最大のメリットですから。

最終的にこれは考え方の問題でもあるとは思います。
「インストーラが自動でPATHを設定してくれる」と考えるのと、
「インストーラが勝手にレジストリをいじった」と考えるのと。
個人的には、JDKは最小構成の開発環境ですから、これで十分だと思ってます。
いろいろ必要ならAll-in-Oneを使えばいい、とも思います。
極論ですが、自分にとってはインストーラすら不要です。
できるなら、圧縮ファイルだけ用意してもらって、
自分で解凍、PATH設定をしたいくらいです。
なんたってインストールすればレジストリが汚されますから。

自分はSunの人間ではないので、真意は不明ですが、
基本的にはKyon2_PaPaさんの言っていることに同意です。
PATHの自動設定なんて不要、セキュリティ的にいらない、
元からあった設定が変えられる、という意見があるからでしょう。

>ワードとかはインストール時には少なくともユーザーはPATHの設定を求められませんが。
>JDKはPATHの設定(環境変数の設定のことです)を求められます、その単純な違いと疑問
>の答えが知りたいだけなのですが。

JDKとワードを一緒に並べると余計混乱するでしょう。利用...続きを読む

Qjdk1.3で実行すると・・・

jdk1.3でコンパイルし実行すると

Exception in thread "main" java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:385)
at java.awt.GridBagLayout.setConstraints(GridBagLayout.java:357)
at rei008.<init>(rei008.java:144)
at rei008.main(rei008.java:20)

というメッセージが出てプログラムが実行できません。
なぜなんでしょうか?宜しくお願いします。

Aベストアンサー

1.「初期化していない」または「値をセットしていない」変数をアクセスしていませんか。
2.戻り値に値が入っていますか。
3.DBやファイルから読み込んだ値は本当にありますか。

NullPointerExceptionの場合はこれをチェックしています。


人気Q&Aランキング

おすすめ情報