2016-07-20 24 views
1

JSP解析と実行時に例外を表示したいと思います。Jettyにカスタムエラーページが表示されない

しかし、動作しません。何が悪いですか?

私はページのディレクティブでエラーページを使用して知っている私の問題を解決するための解決策の一つです。しかし、私はすべてのファイルを編集したくありません。

このようにweb.xmlを編集しました。

web.xmlの

<error-page> 
    <exception-type>java.lang.Throwable</exception-type> 
    <location>/exception.jsp</location> 
</error-page> 

私exception.jspはこちらです。

exception.jsp

<%@ page isErrorPage="true" language="java" contentType="text/html;charset=SHIFT_JIS" pageEncoding="SHIFT_JIS" %> 
<h1> 
    <%= exception %> 
</h1> 
<pre> 
    <% exception.printStackTrace(new java.io.PrintWriter(out)); %> 
</pre> 

例外は、JSPがここにある発生しました。

index.jspを

<%@ page contentType="text/html; charset=SJIS" %> 
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<html> 
    <head></head> 
    <body> 
    <% String a = null; a.toString(); %> 
    </body> 
</html> 

ENV

サーブレットエンジン 3.1

JSPエンジン 2.3

アプリケーションサーバー 桟橋/ 9.2.15桟橋ログから.v20160210

例外

org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 6 

3: <html> 
4: <head></head> 
5: <body> 
6:  <% String a = null; a.toString(); %> 
7: </body> 
8: </html> 


Stacktrace: 
     at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405) 
[...] 
Caused by: java.lang.NullPointerException 
     at org.apache.jsp.index_jsp._jspService(index_jsp.java:572) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432) 
     ... 63 more 
+0

*作業していないとはどういう意味ですか?任意のエラー? – sidgate

+0

あなたは何を得ていますか?それでもNullPointerExceptionが表示されますか? –

+0

jettyログにNullPointerExceptionがあります。ページの内容が空です(エラーではありません) – sekitaka

答えて

-1

私はかつてエラー処理のこの種を使用。しかし、* .jspページをエラーページの場所として使用できるかどうかはわかりません。それはサーブレットである必要はありませんか?

<!-- servlet definition --> 
<servlet> 
    <servlet-name>ErrorHandler</servlet-name> 
    <servlet-class>ErrorHandler</servlet-class> 
</servlet> 
<error-page> 
    <exception-type>java.lang.Throwable</exception-type > 
    <location>/ErrorHandler</location> 
</error-page> 
+0

一度コンパイルされたJSPはサーブレットです。 ' /path/to/error.jsp'のサーブレットパスを参照するだけです。 'RequestDispatcher'を使ってJSPにエラーを誘導する正式な' ErrorServlet'を持つこともできます。 –

+0

あなたの答えをありがとう。しかし、今のところ、私はjspの方法を使用して探しています。 – sekitaka

関連する問題