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も見ています

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

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

QFreeBSD Apacheの環境でサーブレットやJSPは使用できますか?

 Javaについての質問ですが
FreeBSD Apacheの環境でサーブレットやJSPは使用できますか?
FreeBSD Apacheの環境でのサーブレットやJSPの実装は存在しますか、という質問です。
Javaに詳しい方、どうかよろしくお願いいたします。

Aベストアンサー

FreeBSD上でサーブレットやJSPを動かすためには、
・Tomcatなどのアプリケーションサーバ(Javaサーバ)
・JVM(Java実行環境)
が必要です。

TomcatはJavaで書かれているためプラットフォーム非依存なので○○版、というのはありません。
(配布ファイルの圧縮形式でZip版とtar.gz版とWindows向けインストーラつきのexe版がありますが、中身のTomcat本体はどれも同じのはずです。)

次にFreeBSD用のJava実行環境ですが、次のところから入手できるようです。しかしSunのJVM仕様とどのくらい互換性があるのかわかりませんので、Tomcatが正しく動作するかというと、私にはわかりません。

参考URL:http://www.freebsd.org/ja/java/

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が表示されると思います。

QApache環境でJavaサーブレットを動かすのには?

Windows2000のマシンに「Apache for Win32(Ver1.3)」と「JDK1.3」をインストールし、
そのサーバで実際にJavaサーブレットで作成したページを表示させようとしました。
しかし、サーブレットのソース(****.java)を「javac」でコンパイルしたところ、
エラーが発生して、うまく動作されませんでした。
雑誌にあったサンプルをコンパイルしたので文法的には当たっているので、
問題は環境にあるように思えるのですが、他にインストールするものはあるのでしょうか?

Aベストアンサー

サーブレットのコンパイルには、JDKとは別に、JSDKが必要です。
また、サーブレットを実行するのも、確か、Apacheだけでは無理です。
(昔は無理でした)
で、JRun、Apache JServ等のサーブレットエンジンと呼ばれるものを
インストールする必要があります。
(Tomcatを入れるのがいいのかな?)

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
の設定が無効になっているのだと思います。

Qサーブレットforward時の実行メソッドについて

初歩的な質問で失礼します。

サーブレットAに doGet, doPost, serviceメソッドを実装しています。
サーブレットBのdoPostメソッド内にて
サーブレットAにforwardを実行する場合に、
呼出されるのはサーブレットAのどのメソッドですか?

JSPへのforwardはできたのですが、
サーブレットへのforwardができず悩んでいます。

サーブレットのAPIを読んでもいまいちわかりません。
何かメソッドに関する制約があるのでしょうか?
上の質問は全くマト外れでしょうか?

追加ですが・・・
サーブレットからforwardされたサーブレットで、
そこからさらにJSPへforwardすることはできますか?

Apache2.0.43+tomcat4.1.12+Java1.4.0_01です。

Aベストアンサー

> サーブレットBのdoPostメソッド内にて
> サーブレットAにforwardを実行する場合に、
> 呼出されるのはサーブレットAのどのメソッドですか?

doPost() のはず。実際には、forward するときの HttpServletRequest#getMethod() で取得できる文字列に従うはず。

> JSPへのforwardはできたのですが、
> サーブレットへのforwardができず悩んでいます。

forward に関して、servlet と JSP の違いはないはず(というか、JSP は自動コンパイルされる servlet だし)。
getRequestDispatcher() してるパスが間違っているのだと思います。

> サーブレットからforwardされたサーブレットで、
> そこからさらにJSPへforwardすることはできますか?

コンテナの実装次第だけど、forward() は、サブルーチン呼び出しと変わらないはずなので、
回数に制限はないはず。

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

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

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

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

よろしくお願いします。

Aベストアンサー

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

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

Qサーブレットを動せるレンタルサーバについて

サーブレットを動せるレンタルサーバについて

現在、ロリポップ(チカッパプラン)という月額500円程度の(PHPやMySQLが使える)レンタルサーバを借りていますが、共用サーバですのでサーブレットが動かせないです。(tomcatやJDKをインストールすること自体不可能)

そこでレンタルサーバでサーブレットを動かそうとする場合、高価な専用レンタルサーバを借り、
tomcatのインストールやJDKの設定を全部自分でやらないといけないのでしょうか?
最初から既にサーブレットが動く環境(Apache+tomcat)がデフォルトで用意されすぐに利用できるようなレンタルサーバは通常ないものでしょうか?

現在、ローカル環境を2つ構築しており、(2)のようなサーブレットが動作する環境が最初から整ったレンタルサーバがないものかと考えています。
普通はレンタルサーバを借りてサーブレットを動かそうとすれば、tomcatやらJDKやら自分で専用サーバにインストール&設定するものなんでしょうか?それ以外に手法はありますか?

ローカル環境は2つ構築していています。
(1) windows7 Xampp(Apache2.2+tomcat7連携)JDK6
(2) 自宅サーバ:centOS5.6 Apache2.2+tomcat5.5連携 JDK5 

サーブレットを動せるレンタルサーバについて

現在、ロリポップ(チカッパプラン)という月額500円程度の(PHPやMySQLが使える)レンタルサーバを借りていますが、共用サーバですのでサーブレットが動かせないです。(tomcatやJDKをインストールすること自体不可能)

そこでレンタルサーバでサーブレットを動かそうとする場合、高価な専用レンタルサーバを借り、
tomcatのインストールやJDKの設定を全部自分でやらないといけないのでしょうか?
最初から既にサーブレットが動く環境(Apache+tomcat)がデフォル...続きを読む

Aベストアンサー

最初から環境が整ってるというわけではありませんが最近は比較的安価にVPSが提供されてますが、それではダメなんでしょうか?

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とワードを一緒に並べると余計混乱するでしょう。利用...続きを読む

QJava サーブレット間の値の受渡について

こんにちは

サーブレットAからサーブレットBへ値を渡して、
サーブレットAで、戻り値を取得したいと考えています。

条件としては、
・サーブレットBの改修はできない
・サーブレットBへはGet,Postで値を渡すことができ、
戻り値を数値で貰える
というものです。

サーブレットA側からサーブレットBへリダイレクトするやり方はわかったのですが、それだと処理が完全にサーブレットBに移ってしまい、戻り値に応じた処理がサーブレットA側で行えないのです。
一般的なプログラミングのように、コールして戻り値に応じて処理を分ける・・といったことは出来ないのでしょうか?

Aベストアンサー

サーブレットAからBへリダイレクトしたのでは、そのままページを移るだけですからお望みのような働きにはなりません。

どうしてもというなら、サーブレットAの中から、URLConnectionでサーブレットBに接続をし、結果を受け取って処理する、というような形になるかと思います。要するに、サーブレットAの内部から、HTTPでサーブレットBにアクセスするわけです。

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を見た人がよく見るQ&A

人気Q&Aランキング