
お世話になります。
Tomcat5.5、Linux環境下で、
WEB-INF/web.xmlに
<error-page>
<error-code>500</error-code>
<location>/jsp/error.jsp</location>
</error-page>
<error-page>
<error-type>java.lang.Exception</error-type>
<location>/jsp/error.jsp</location>
</error-page>
という記述をしています。
(Tomcatは問題なく起動しています)
サーブレット内でエラーが起こるように設定したのですが、作成したerror.jspに飛ばず、通常の500のエラーページが表示されます。
サーブレット記述
doGet(... ) throws ServletException,IOException {
...処理
try {
throw new IOException(); //ここでExceptionをわざと起こしています。
...処理
} catch (Exception e) {
e.printStackTrace();
throw new ServletException(e);
}
なぜ、独自のエラーページに飛んでくれないのか原因が分からず投稿させていただきました。
どなたかアドバイスお願いします。
No.8ベストアンサー
- 回答日時:
<error-page>要素を書く位置が間違っているとか。
<tag-lib>要素の前、<welcome-file-list>要素の次に書かないと設定に反映されません。
この場合は起動ログにしっかりエラーが記録されているはずです。
いずれにしてもケアレスミスの可能性が高いと思われます。
TOMCAT_HOME/conf/web.xml にも<error-page>を記述してみては?
この回答への補足
web.xmlの要素位置(<error-code>)を直したら、
Tomcatデフォルトのエラーページはでなくなりました。
代わりに、
「ページを表示できません HTTP500 内部サーバエラー」
となってしまうようになりました。
指定しているエラーJSPのファイル自体が悪いのかと思い、
簡単なHTMLファイルに置き換えて表示させてみましたが、結果は
同じでした。
No.6
- 回答日時:
500問題とはあまり関係のない事ですが・・
web.xmlのスキーマ(http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd)見ると、error-page要素の子要素はerror-codeかexception-typeのみのようですね。
No.5
- 回答日時:
なんだかもう原因特定できないような気がしてきました・・。
first-tryさんは、JSP以外に、Servletは使われてますか?
というのも、Servletを使うには、サーブレットの登録とマップをweb.xmlで行わなければいけませんよね。
もしも使えなかったら、web.xmlで正しくマッピングできていないと考えることができて、原因はそこにあると考えられます。
(もうweb.xmlが反映されてないことを疑うしかない。。)
ちなみに、web.xmlがドキュメントベースになくても、こちらの環境では問題なくコンテナは立ち上がりますので、コンテナが起動しているからweb.xmlが正しく認識されているとは限らないと思います。
・・・いろいろと低質な回答をぐだぐだと書いてしまいましたが、今回のチェックポイントでだめならば、私の力では本当にお手上げです。
No.3
- 回答日時:
すみません、どうやらこちらで勝手に原因を思い込んでいたみたいです(自分がサイズの問題を経験したせいです)。
ここからはアドバイス程度しかできませんが、
1, web.xmlを変更してからコンテナを再起動したか
2, 普通にそのページにアクセスして、きちんと表示されるか
例えば、http://localhoost:8080/jsptestがコンテキストルートだとすると、http://localhost:8080/jsptest/jsp/error.jspに普通にアクセスして、きちんと表示されるかどうかです。
3, エラーログにエラーが出力されていないか
これらを確認するくらいですね。。
勝手な想像ですが、2番が怪しいかなと思っています。
この回答への補足
いつもいつも素早い回答ありがとうございます。
>1, web.xmlを変更してからコンテナを再起動したか
はい、再起動しています。
>2, 普通にそのページにアクセスして、きちんと表示されるか
はい、きちんと表示されます。
ちなみに中身は、
<%= exception.toString() %>
<%= exception.getMessage() %>
のみです。
>3, エラーログにエラーが出力されていないか
エラーログとは、catalina.outのことでしょうか?
私が設定したエラー以外は吐き出されないのですが・・・
No.2
- 回答日時:
>生成されるページが何byteか、とはどうやったらわかるのでしょうか?
サイズが小さすぎると表示されないのはInternet Explorerのみなので、まずはFireFoxやその他のIE以外のブラウザでうまくいくかどうか試します。
サイズが小さすぎると表示されない問題は、
404でも500でも、すべてについてInternet Explorerでのみ発生します。
なので、500 Server Errorの問題が解決すれば、404も解決すると思います。
この回答への補足
早々のご返答ありがとうございます。
FireFoxで試してみましたが、結果はIEと同じでした。
このことからわかることはありますでしょうか?
何かあれば、アドバイスお願いします。
No.1
- 回答日時:
/jsp/error.jspファイルが生成するページにデータは、600byte以上ありますか?
それ以下(5百と数十バイト)だと、正常にページが表示されません。
この回答への補足
アドバイスありがとうございます。
無知なためもうひとつ教えてください。
生成されるページが何byteか、とはどうやったらわかるのでしょうか?
error.jspの中身は、
<%= exception.toString() %>
<%= exception.getMessage() %>
なので、エラーごと、生成されるbyte数は違うと思います。
また、WEB-INF/web.xmlに
<error-page>
<error-code>404</error-code>
<location>/jsp/error.jsp</location>
</error-page>
といった記述を追加してみました。
そして存在しないファイル名をURLに打ったのですが、
通常の404エラーページが表示されてしまいます。
こちらもアドバイスありましたら、お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(SNS・コミュニケーションサービス) 爆サイやっていたら、下のような文字が出ました! これは何なのでしょうか? nginx error! 1 2023/06/09 12:27
- Windows 10 VirtualBox 7のゲストOSでの物理HDDパーティションのマウント方法 2 2023/05/04 13:01
- その他(パソコン・周辺機器) dvd書き込めない 5 2022/03/22 19:06
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- オープンソース AWSドメイン名でApacheテスト・ページを表示させる方法を教えて下さい。 1 2023/04/26 15:59
- オープンソース Vue+Laravelのデザインテンプレートのサンプルが起動できない 1 2022/05/18 21:52
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- FX・外国為替取引 MQL5にて謎のエラーが発生!だれか対処を教えてください! 1 2023/03/25 15:59
- MySQL 参考書に従って入力したつもりでしたが、最後はエラーがでました。 1 2022/09/28 03:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
struts使用時のソースの位置
-
hibernate.cfg.xmlの配置場所に...
-
Javaでの数値の表示について
-
Tomcat 4.1での配備方法
-
Tomcatを再起動するとエラーと...
-
Apache Tomcat/4.0.6 - HTTP St...
-
下から上へ流れる文字
-
org.xml.sax.SAXParseException...
-
TomcatでのHTMLの表示
-
Tomcat & Axisの設定
-
サーブレットの動かし方が分か...
-
マイクラjavaでForgeを入れたい...
-
i-mode用Flashの開発環境が整え...
-
Eclipseのアンインストールの仕方
-
Eclipseで、プロジェクト名のと...
-
javacコマンドが操作可能なバッ...
-
サーブレットからBeanを呼び出...
-
VisualC#Expressの最新版
-
アート/デザインのためのプログ...
-
EclipseでHTTP404エラーが出る。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
TomcatでのHTMLの表示
-
org.xml.sax.SAXParseException...
-
ibatis初心者 設定エラー
-
Tomcatのエラーページをカスタ...
-
Tomcatを再起動するとエラーと...
-
struts使用時のソースの位置
-
web.xmlでのエラーページ
-
StrutsのDataSourceの使い方。...
-
contextタグ内のsourceタグにつ...
-
【Tomcatが突然動かなく...
-
System.exitをwebで使うと良く...
-
Javascriptのスキルをもう一段...
-
TomcatとEclipseのweb.xml[]に...
-
Java -- Ant replaceタスク 予...
-
jspでこんなエラーが出ます
-
Highslide JSのコントローラー...
-
Eclipseで日本語文字化け
-
Tomcat & Axisの設定
-
アップロードした画像の格納先...
-
Eclipseで、プロジェクト名のと...
おすすめ情報