我有一个 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>
最佳答案
<webContainer deferServletLoad="false"/>
关于java - 在服务器启动时加载/初始化 Java servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44736602/