java - Tomcat 未处理外部服务抛出的 500 个内部服务器代码
问题描述
我将我的应用程序部署在 Tomcat 上,它还连接到 Redis 服务器进行缓存。我面临的问题是,当 Redis 服务器由于某种原因关闭/超时时,我在应用程序网页上看到 500 内部服务器错误以及所有这些错误跟踪。在我的应用程序的 web.xml 中配置了一个自定义错误页面,当出现 500 错误代码时应该显示该页面。我还尝试在 web.xml 所在的 tomcat/conf 文件夹中放置一个默认示例错误页面,并在 web.xml 中为其配置了映射。还是没有运气。任何人都可以请建议。
映射: -
<error-page>
<error-code>500</error-code>
<location>/sample.jsp</location>
</error-page>
要在本地重现和测试,在 tomcat 上启动应用程序后,我将关闭 redis-server。现在,当我尝试在网页上遍历时,它显示 500 内部服务器错误并出现 redis 连接问题,但在 tomcat 日志中不会增加并且与日志中的 redis 错误和 500 代码无关。
有关此的更多信息:当异常发生时,图块返回正确的视图名称,这是我的自定义错误页面视图,但随后它被一些后台异常管理器接管,tomcat 对其失去了控制:-
catalina-utility-1:org.apache.cataline.core.standardcontext.backgroundprocess Exception processing manager[RedissonSessionManager][standardhost:localhost][standardcontext:/applicationname]
在此之后出现与 redisson 相关的错误,并且在网页上它是相同的 500 内部服务器错误以及所有错误消息。
解决方案
推荐阅读
- python-3.x - 我无法使用命令 conda install adspy 在 Anaconda 中安装 adspy_shared_utilities
- java - @XmlElementWrapper 序列化无法使用 Jackson JaxB 注释
- swift - 调用函数时获取零值
- python - tkinter 滚动框架按钮随框架调整大小
- redis - 为什么redis客户端不响应命令?
- c++ - 在 C++ 中打印 BST 的函数
- .net - 如何从 Powershell 中的 .net 类继承
- swift - 显示存储在 Firebase 中的所有 GeoFire 位置
- r - R:对文本变量进行分类
- angular - is there an OnActivate method for angular?