Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 多个错误代码配置web.xml_Java_Servlets_Error Handling - Fatal编程技术网

Java 多个错误代码配置web.xml

Java 多个错误代码配置web.xml,java,servlets,error-handling,Java,Servlets,Error Handling,我希望将所有错误直接发送到我的Errorsevlet,而不明确指定所有代码。有没有办法做到这一点 <error-page> <error-code>400</error-code> <location>/servlet/com.abc.servlet.ErrorServlet</location> </error-page> 400 /servlet/com.abc.servlet.ErrorServlet

我希望将所有错误直接发送到我的Errorsevlet,而不明确指定所有代码。有没有办法做到这一点

<error-page>
   <error-code>400</error-code>
   <location>/servlet/com.abc.servlet.ErrorServlet</location>
</error-page>

400
/servlet/com.abc.servlet.ErrorServlet
**在到达ErrorServlet之后,我如何获得servlet中错误的堆栈跟踪。这样,当发生一个错误时,我可以通过电子邮件发送详细信息**


<error-page>
    <exception-type>java.lang.Throwable</exception-type> 
    <location>/servlet/com.ibm.eisa.servlet.ErrorServlet</location> 
</error-page>
java.lang.Throwable /servlet/com.ibm.eisa.servlet.ErrorServlet

试试这个,你的所有错误都会被捕获(500个)而不是404等。你需要明确指定所有需要的代码,不支持通配符机制。没有那么多代码,这里是一个完整的

要打印stacktrace(例如,在注释中,出于调试目的),可以执行以下操作:

<%@ page isErrorPage="true" import="java.io.*"%>
<body>
<p>Sorry, there was an error.</p>
<!-- The full stacktrace follows:-->
<!-- 
<%
if (exception != null) {
    exception.printStackTrace(new PrintWriter(out));
}
%> 
-->
</body>

抱歉,出现了一个错误


如果您可以升级,自Servlet 3.0以来,可以为所有的错误创建一个通用错误页面,即使这些错误不是由异常引起的(例如404、401等)。只需将
一起省略,这样您就只有一个


/错误servlet

请注意,我替换了URL以避免使用Tomcat的内置和弃用的
InvokerServlet

,我也有同样的担心,经过一些研究,我发现不幸的是,Servlet 3.0规范中没有支持默认错误页的明确要求

错误的是,“错误代码”或“异常类型”是XSD中的可选标记,因此我们倾向于认为默认错误页将是没有“错误代码”而没有“异常类型”标签的错误页。p> 一些应用服务器(如GlassFish)的行为如我们所愿,采用默认错误页面,然后按照特定错误页面的顺序覆盖默认错误页面

我也在WebLogic12c上测试了它,但我无法让它像在GlassFish上一样工作。下面的文章给出了更多关于Tomcat的线索


参见:bz.apache.org/bugzilla/show_bug.cgi?id=52135

谢谢。。如果我想捕获所有400个,那么配置如何?我应该为所有人写单独的错误页面条目吗?是的,你必须写单独的条目。有没有办法从servlet获取堆栈跟踪?对于发送包含详细信息的邮件…似乎即使是最新的Tomcat 7.0.27也不支持此“univeral”错误页。。。BalusC,你运行的Tomcat是什么版本?已确认,Tomcat()还不支持。为Glassfish 4工作为我在Tomcat 7.033上工作,因为它在7.0.29中已修复。