2011-07-09 52 views
1

我希望在Glassfish中引发未处理的异常(在网页中,不是日志)时看到异常详细信息。Glassfish中未处理的异常详细信息

此错误页面显示,但没有有用的信息。当抛出异常时,有没有可以查看它的更多细节的选项? (像在asp.net如果你让debugmode真正在web.config中可以看到异常的详细信息

HTTP状态500 -

类型异常报告

消息

说明服务器遇到内部错误() ,阻止其执行此请求。

例外

显示java.lang.NullPointerException注 异常 的完整堆栈跟踪和其根源是 在Oracle GlassFish应用服务器3.1日志可用。

的Oracle GlassFish应用服务器3.1

感谢

回答

5

一般来说,你应该做的事情一样,只有在开发环境中,因为它发布内部应用程序的细节向外界(安全问题)。不过,你可以在你的web.xml定义一个通用的异常的jsp:

<web-app> 
    <error-page> 
     <exception-type>java.lang.Throwable</exception-type> 
     <location>/WEB-INF/jsp/throwable.jsp</location> 
    </error-page> 
</web-app> 

throwable.jsp的页面元素必须包含一个isErrorPage属性:

<%@ page isErrorPage="true" %> 

该属性定义的变量例外键入java.lang.Throwable,这样你就可以检查里面throwable.jsp您的例外:

<div style="font-family: monospace"> 
    <pre> 
<% exception.printStackTrace(new java.io.PrintWriter(pageContext.getOut())); %> 
    </pre> 
</div> 
+0

谢谢你,那就是我想要的。但还有一个问题,我没有web.xml,但我有一个sun-web.xml。他们是一样的吗? – Seregwethrin

+0

他们绝对不是。您应该在Eclipse项目创建向导中勾选*生成部署描述符?*复选框以获取一个。现在您需要手动创建一个。 – BalusC