Sha*_*wal 11 jboss web.xml servlets
我正在开发一个Java Web应用程序.该应用程序连接到Lucene索引.我创建了一个IndexSearcher的单例实例.此实例打开一些文件.当我重新部署Web应用程序时,由早期的IndexSearcher实例打开的文件将继续保持打开状态,并且重新部署的应用程序将创建另一个实例.经过一些重新部署后,系统开始抛出"太多打开文件"异常.我想在重新部署之前关闭旧实例,以便关闭旧文件,但我无法弄清楚如何做到这一点?web.xml中是否有一个指令取消部署,类似于load-on-startup?我在jboss服务器上运行web应用程序.
Bal*_*usC 22
@WebListener
public class LuceneConfig implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// Do your job here during webapp startup.
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// Do your job here during webapp shutdown.
}
}
Run Code Online (Sandbox Code Playgroud)
如果您还没有使用Servlet 3.0(虽然已经有2年了),那么您需要删除@WebListener注释并手动注册web.xml,如下所示:
<listener>
<listener-class>com.example.LuceneConfig</listener-class>
</listener>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6185 次 |
| 最近记录: |