Apache Tomcat的错误页面

时间:2017-12-18 13:25:24

标签: java apache tomcat custom-error-pages

我正在使用Apache Tomcat v7.0.63,它托管了4个不同的应用程序。其中一个应用程序具有错误页面列表。

现在我们想让它通用,以便其他应用程序也可以使用相同的错误页面。这样,我们就不需要在所有Web应用程序中保留重复文件。我们希望将所有错误页面保存在tomcat / errorPages目录或tomcat / conf / errorPages目录下。

我尝试修改/tomcat/webapps/MyApplication/WEB-INF/web.xml文件,如下所示,它无法正常工作。有人可以帮忙吗?

</error-page>
    <error-page>
    <error-code>404</error-code>
    <location>/../../errorPages/errorPage404.html</location>
</error-page>

并且errorPage404.html位于/ tomcat / errorPages目录中。

2 个答案:

答案 0 :(得分:0)

如果您希望它具有通用性,我建议您在try{ $status = ([wmiclass]"\\.\root\ccm\clientsdk:CCM_ClientUtilities").DetermineIfRebootPending() if($true -in (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending", "HKLM:\SOFTWARE­\Microsoft­\Windows­\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired") -or Get-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager" -Name PendingFileRenameOperations -EA Ignore -or (($status -ne $null) -and $status.RebootPending)) { # do stuff } } catch{} 中定义错误。它将覆盖TOMCAT_HOME/conf/web.xml附带的默认错误页面。

Tomcat

确保将错误页面移至位置<error-page> <error-code>500</error-code> <location>/server_error.html</location> </error-page> <error-page> <error-code>404</error-code> <location>/file_not_found.html</location> </error-page>

答案 1 :(得分:0)

自Apache Tomcat 9.0版开始,您可以在主机定义下的server.xml上使用ErrorCode.nnn(其中nnn是HTTP错误代码)定义指向UTF-8编码的HTML页面的ErrorValve,如{ {3}}。

因此,您的server.xml应该包含在您的主要主机上:

<Host appBase="webapps" autoDeploy="false" name="localhost">
    <!-- ... your other configs ... -->
    <Valve className="org.apache.catalina.valves.ErrorReportValve" errorCode.404="<path to your html, may be relative to $CATALINA_HOME or absolute>"/>
</Host>

这避免了需要在每个项目中定义不同的错误页面,也不必像先前的回答中所述,在全局web.xml上包含具有全局错误页面的全局ROOT.war。