• 締切済み

Tomcatのエラーページをカスタマイズする方法【すべてのWebアプリケーションに適用させたい】

こんにちは。 各種サイトを見ても詰まってしまったため、質問させていただきます。 Tomcat 5.0.28を使用しています。 HTTPのエラーコードを受け取ったときに、独自のエラーページを 表示させるには、web.xmlを編集すればよいことまではわかっています。 個々のWebアプリの設定であれば、(アプリケーションルート)/WEB-INF/web.xml を編集することでカスタムエラーページを表示できました。 今回、Tomcatに配備しているすべてのWebアプリに対して、同じエラーページを表示させるつもりです。 この場合、$CATALINA_HOME/conf/web.xmlに同じような編集を 行えばよいということが下記サイトに書かれていました。 http://www.atmarkit.co.jp/fjava/javatips/064container011.html ここで問題なのが、web.xmlで <error-page> <error-code>404</error-code> <lcoation>/error/404.html<location> </error-page> とした場合、404.htmlはどこにおけばよいかがわからず、適切に 表示されません。 各アプリごとの場合は、アプリケーションルートの直下に errorディレクトリを作ればよいのですが・・・ conf/web.xmlに記述をした場合は、ルートはどこに おいたらよいのでしょうか。 ちなみに 1.$CATALINA_HOME/webapps/error/404/html 2.$CATALINA_HOME/webapps/ROOT/error/404.html 3.$CATALINA_HOME/error/404.html を試しましたが、いずれもうまくいきませんでした。 また1.の設定の場合、server.xmlに記述を追加して errorコンテクストを配備しています。 <Context path="/error" docBase="error" ....> 基本的な質問かもしれませんが、何卒よろしくお願いします。

みんなの回答

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.2

#1 です 少し違いましたね Tomcat 単体で動かして確認しました <error-page> <error-code>404</error-code> <lcoation>/error/404.html<location> </error-page> とした時アプリ /app1 以下で 404 を出した時と /app2 以下で 404 の場合ではそれぞれ違う場所を参照しているようです /app1 の時は /app1/error 以下の 404.html /app2 の時は /app2/error 以下の 404.html ですね

Dandee
質問者

補足

やっぱ個別のアプリごとに404.htmlを用意するしかないのでしょうかね。 conf/web.xmlにエラーページ記述をしたら、どこのアプリ配下で 404を受け取っても同じページに遷移するようにはできないもんなのかと悩んでます・・・

  • hofchan
  • ベストアンサー率62% (17/27)
回答No.1

Tomcat が単体で動いているなら $CATALINA_HOME/webapps/ROOT/error/404.html でいいと思いますが Apache と共に動いていれば Apache の /error/404.html を参照するのではないでしょうか?

関連するQ&A