java - 在 Java servlet 中调试 init() 方法

标签 java tomcat servlets

根据我对 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/

相关文章:

java - Quarz 调度作业抛出一些错误

java - 如何在 Java 中将数字(作为字符串)转换为字节数组?

java - 什么时候应该在连接池中实例化数据源

java - 如何使用gradle为servlet创建MANIFEST.MF文件?

java - servlet请求参数字符编码

Java - 获取id从链接中删除所有字符

java - 更新数据库中的记录 - JSF JPA 等

apache - 如何为 SSL 页面配置 mod_pagespeed

java - 基于 Spring 代码的配置 - IllegalArgumentException : A ServletContext is required

java - JSP/Servlet - 如何创建从数据库获取记录的条件