
こんにちは。
JSPの呼び出しについて質問です。
サーブレットで
RequestDispatcher dispatcher = req.getRequestDispatcher("/jsp/java.jsp");
dispatcher.include(req, res);
としてJSPファイルを呼び出そうとしているのですが、うまくいきません。コンパイルは通ります。
dispatcher.include(req, res);
の部分で例外処理にいってるのでそこがおかしいようですが。urlの指定もjspファイルの内容も何度も確認したのですがミスはないみたいで原因がわかりません。
またTomcatのログファイルlocalhost_logを見ると
2002-07-11 16:05:35 ApplicationDispatcher[/DB] サーブレット jsp のServlet.service()は例外を投げました
という文が出力されています。
No.3ベストアンサー
- 回答日時:
>DOS画面に大量の文字がでます
それがスタックトレースです。一番上の行が例外を発生したメソッドで、その次の行がそれを呼んだメソッド、その次の行が……という構造です。
たいていはDOS窓のスクロールバーで一番上の行まで見えますが、だめなようですね。
printStackTrace()は引数にストリームを取ることができるので、No.2のご回答を試してください。
また、JSPの記述に問題がないことを再確認するために、dispatch先にJSPではなくHTMLファイルを指定してみてください。それで例外が出なくなればJSPの問題ということに。
やはりJSPの方に問題があったようです。
違うマシンで試してみたところそっちでは正常に動いたのでもう一度環境を一からインストールし直したら正常に動きました。ApacheやTomcatを何度かインストールし直していたので少しずつ設定がおかしくなっていたのかも。エラーコードを見ないとわからなかったと思います。
アドバイス本当にありがとうございました。
No.2
- 回答日時:
JSPのコンパイルエラーということは考えられませんか?
もう少し問題を詳しく分析するために、サーブレットにこんなメソッドを入れて確認してみてはいかがでしょうか。
private void writeError(HttpServletResponse res, Exception e) {
PrintWriter writer = null;
try {
writer = res.getWriter();
}
catch (Exception ex) {
writer = new PrintWriter(System.out);
}
writer.println("<h4>例外が発生しました</h4>");
writer.println("<hr>");
if (e != null) {
writer.println("<pre>");
writer.println(e.getClass() + ":" + e.getMessage());
e.printStackTrace(writer);
writer.println("</pre>");
}
}
このメソッドを追加しておいて、
try {
dispatcher.include(req, res);
}
catch(Exception e) {
writeError(response, e);
}
とかしておけば、ブラウザにエラーを出せますよ・・・(たぶん)。
No.1
- 回答日時:
もし表示をJSPに移すのが目的であれば、include()ではなくforward()になりますが、それは大丈夫でしょうか。
私はforward()しか使ったことがないのですが、include()は次の例のように「サーブレットの出力ストリームに割り込む」ようです。
http://java-house.jp/ml/archive/j-h-b/047496.html
include()で良いとすれば、そこで起きている例外をもっと詳しく見てみましょう。try{}catch{}で囲んでprintStackTrace()してはどうでしょうか。
この回答への補足
forward()でも特に問題はないのですがそちらでやっても同じような状態になります。それと初歩的な質問で大変申し訳ないのですがprintStackTrace()したあとどうやってそれを確認するのでしょうか?私はTomcatを使っているのですが起動をかけた時にでるDOS画面に大量の文字がでますがあれを見るのでしょうか?もしそうなら画面に表示しきれない部分はどうやって見るのかも教えていただければうれしいです。
補足日時:2002/07/11 17:29お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java 問題作成のWebアプリの作り方を教えてください 1 2022/11/26 22:01
- バックアップ ファイル履歴を使用してバックアップよりハードディスクドライブに保存した方良いですか? 3 2022/09/29 22:31
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- Windows 10 WIN10(MAC-bootcamp)で 起動時のパスWが どうにもならない 2 2023/06/30 11:40
- Windows 10 ビデオカードが変更されたPCの復元 1 2022/11/29 02:01
- Visual Basic(VBA) VBAでWEBサーバー上に保存されたPDFファイルのリンク有効チェックについて 1 2022/11/11 16:04
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- 英語 英語ニュース記事について 4 2022/06/05 05:57
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- JavaScript カラーミーショップのsectionループ内で、[引数][戻り値]ありの関数的な処理を行いたいです。 1 2022/05/07 19:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
数字か文字列かを判定する関数
-
C# マルチスレッドにおける例外...
-
基本的にはないと言われました
-
ノートPC内臓CD-ROM(DVD-ROM)...
-
C#の捕捉されない例外処理の対...
-
文字列が数字のみで構成されて...
-
文字列からダブルクオートの削除
-
VB.Net Object型 空かどうか
-
VBA 400エラー 1004エラー
-
連続する「\\」をひとつの「\\...
-
文字列の最後の文字取得
-
ファイルダイアログを開いた時...
-
例外ってIf文の中に入れますか...
-
[C#][FX]DLLを利用した共有メモ...
-
VB.NETで16進数が正しいかどう...
-
String型の日付(2005/11/25)の...
-
デバッグについて
-
SQLException getNextException()
-
初回例外
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「タイプ初期化子が例外をスロ...
-
C#の捕捉されない例外処理の対...
-
VB.Net Object型 空かどうか
-
連続する「\\」をひとつの「\\...
-
VC++におけるCStringの変換
-
VBA Evaluate関数 型が一致しま...
-
Javaで文字列をゼロ埋め(ゼロパ...
-
ファイルダイアログを開いた時...
-
VB.NETで16進数が正しいかどう...
-
Timestamp型への変換について(J...
-
C# マルチスレッドにおける例外...
-
コンストラクタでの例外は不可...
-
文字列からダブルクオートの削除
-
String型の日付(2005/11/25)の...
-
例外ってIf文の中に入れますか...
-
初回例外
-
【JAVA】与えられた金額を貨幣...
-
アサーションと例外処理の違い...
-
VBA 400エラー 1004エラー
-
WebClient()以外でネットにアク...
おすすめ情報