根据我对 Tomcat 服务器工作原理的了解,如果您的 Web 应用程序中有 Java servlet,则每当服务器启动时都会调用 init()
方法。
在那种情况下,我该如何调试 init()
方法?设置断点显然不起作用,并且出于某种原因,System.out.println
语句也不会在我的服务器控制台上产生任何输出。
我已经检查了正确的 Web 应用程序 (.war
) 是否已部署并正确提取到我的 Tomcat 服务器的 webapps
文件夹中。
最佳答案
在我看来,您的部署描述符 servlet 声明没有 load-on-startup
大于 0 的值。如果您省略了该元素,则 Servlet
只有当容器认为它应该处理一个请求时才会被初始化。在那之前,init
方法未被调用。
通过提供 load-on-startup
值,像这样
<servlet>
<servlet-name>servlet</servlet-name>
<servlet-class>com.example.YourServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
你告诉容器初始化 Servlet
马上,因此调用你的 init
方法在启动时,而不是在该 servlet 的第一个请求到达时。
关于java - 在 Java servlet 中调试 init() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22627538/