java - 在服务器启动时加载/初始化 Java servlet

标签 java servlets initialization startup websphere-liberty

我有一个 Java servlet,我想在服务器启动时加载并初始化。我以为我可以添加 <load-on-startup>1</load-on-startup>给我的<servlet>注册我的web.xml文件,但我发现仍然需要“第一个请求”才能使我的应用程序服务器(WebSphere Liberty)实际加载并初始化 servlet。

我也尝试过注册 ServletContextListener同样web.xml无济于事(它也不会被调用,直到“第一个请求”)。

我读到的所有内容主要都是关于控制 Servlet 加载/初始化的顺序,或者关于 ServletContextListener ,当您的网络应用程序加载时如何通知您。我没有找到任何专门讨论服务器启动时的内容。

供您引用,这是我的 web.xml :

<web-app id="WebApp_ID" version="3.1"
xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd">

<servlet>
    <servlet-name>startup</servlet-name>
    <servlet-class>com.your.mother.StartupServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>startup</servlet-name>
    <url-pattern>/startup</url-pattern>
</servlet-mapping>

<listener>
    <listener-class>com.your.mother.MyListener</listener-class>
</listener>

</web-app>

最佳答案

关于java - 在服务器启动时加载/初始化 Java servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736602/

相关文章:

java - 在 for 循环中使用相同变量名初始化多个对象时会发生什么?

java - Java中是否有默认的数字类型

Java桌面应用程序: How to fix height and width

java - 如何在 Docker 镜像中安装 Java 9 和 Gradle

java - Gradle - 一个项目,多个包,多个jar

java - 如何将数字数组传递到jsp页面?

java - 网络服务设计

java - 使用init读取WEB-INF文件夹java中的属性文件

c++ - 采用 auto_ptr 的构造函数

C# 6.0 默认初始化