Mr *_*eph 4 tomcat custom-errors
我正在运行带有 2 个自定义 servlet 的 Apache Tomcat 服务器。树结构看起来像:
$CATALINA_HOME/webapps/
ROOT/
WEB-INF/
servlet1/
META-INF/
WEB-INF/
servlet2/
META-INF/
WEB-INF/
Run Code Online (Sandbox Code Playgroud)
我正在尝试为每个 servlet 添加一个自定义错误 html 页面,该页面将显示在错误 400、404 上以及当 servlet 出现异常时(例如应该在 http 请求中发送给 servlet 的信息是不在那里)
我添加到 $CATALINA_HOME/webapps/servlet1/WEB-INF/web.xml
<error-page>
<error-code>400</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/error.html</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.html</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
我error.html
在$CATALINA_HOME/webapps/ROOT/
. 这似乎不起作用。当我输入“www.server.com/servlet1/SomRandomStuff
以获取 404 时,会显示一个空白页面,而不是 error.html。当我调用 servlet 而不将正确的信息传递给它时,还会发生其他事情,浏览器会询问我是否要下载文件。
我我试过error.html
不放在ROOT
而是放在 servlet1 目录上。没有工作。我检查了error.html
具有正确的权限,没关系。我没有想法,我在网上找到的几个教程非常模糊。
我究竟做错了什么?我如何实现这一点 - 为每个 servlet 显示一个自定义错误页面?
感谢您的帮助。
小智 5
您的页面路径以斜杠开头:
<error-page>
<error-code>400</error-code>
<location>**/error.html**</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>**/error.html**</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>**/error.html**</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,它可能会在驱动器的根目录中查找它们。
如果它们与 web.xml 位于同一文件夹中,您可以通过这种方式尝试 ./error.html
除此之外,我建议您尝试使用文件的完整路径:/var/www/error/error.html
或者无论您的情况如何。
归档时间: |
|
查看次数: |
59030 次 |
最近记录: |