我使用Tomcat作为servlet容器用Java编写Web应用程序。 我编写了一个实现ServletContextListener的AppLoader类来捕获事件contextInitialized并执行一些init操作。 没问题,但是当我需要使用getResourceAsStream方法读取资源(txt文件)的内容时,它会失败并返回null。 我注意到在Servlet服务中运行相同的操作(因此,在web app init事件之后)工作正常并返回文件内容。
在加载应用之前,我似乎无法访问内部资源。
我该如何解决?是否有“准备好”事件来捕获Web应用程序?
感谢您提出任何建议
答案 0 :(得分:0)
你也可以通过自动加载带有加载的servlet,并在init的servlet中调用getResourceAsStream()方法
<servlet>
<servlet-name>StartupServlet</servlet-name>
<display-name>StartupServlet</display-name>
<servlet-class>com.myApp.StartupServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
在Servlet中
public class StartupServlet extends HttpServlet{
@override
public void init()
{
// do you operation here.
}
@override
public void doPost(HttpServletRequest req,HttpServletResponse res)
}