我的一些 servlet 有一个非常奇怪的问题。以下是我的配置:
- 文件夹 A 在 Tomcat 目录中部署了 X 个 servlet
- 文件夹 B 在 Tomcat 目录中部署了 Y 个 servlet
在一定时间或点击文件夹 B 中的任何 servlet 后,它停止正常工作,而同时文件夹 A 的所有 servlet 都正常工作。
我无法追踪我在哪里做错了。
两个文件夹的 servlet 的所有编码都是相同的,唯一的区别是它们与不同的 DB 交互,但它是非常简单的 DB 只读操作。
有什么想法吗?
最佳答案
问题在于记录器。当线程完成执行时,不会隐式释放 Logger 实例,并且由于没有诸如 close() 之类的明显方法来关闭 Logger 实例,因此 doGet/doPost 线程无法正常退出。
摆脱 Logger,或者显式销毁实例/将其分配给 null 将解决问题。
关于java - Servlet 在一些点击或时间后停止在 Tomcat 服务器上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2876901/