我有一些配置存储在servlet上下文中,在servlet之间共享。当前的方法是在调用任何servlet的init()方法时将配置加载到servlet共享的静态hashmap的单个副本中。但问题是servlet不会死,所以即使我更改了servlet上下文中的配置,配置也不会重置。因为servlet再也不会调用init(),所以它们不会将配置重新加载到hashmap中。
我正在使用websphere 7,有什么地方我可以配置什么时候servlet死了,一个新的servlet诞生了?
我认为在有新请求时从servlet上下文重新加载配置太笨拙了。
编辑: 我有一个调度程序,它将创建一个新线程来检查特定的数据文件,如果数据文件是新的,它将创建一个hashmap(包含数据文件的内容)作为servlet上下文中的属性。
现在,servlet将检查hashmap的servlet上下文,并将其复制到静态hashmap,以便在servlet刚创建时共享使用并调用init()。但问题是servlet在执行过程中不会死,它只会使计划的操作无效。
答案 0 :(得分:0)
为什么不将这些数据存储在JNDI中,servlet可以在需要时获取它?这样,您就可以完全控制数据; servlet生命周期将不再重要。
答案 1 :(得分:0)
我正在使用websphere 7,有没有 我可以配置的时间 servlet死了,一个新的servlet是 出生?
没有
编辑:我有一个调度程序 创建一个新线程来检查a 特定数据文件,如果是数据文件 是新的,它将创建一个hashmap(用 数据文件的内容) servlet上下文中的属性。
现在servlet将检查 hashmap和的servlet上下文 将其复制到静态hashmap以进行共享 在servlet中使用它们 创建并调用init()。但是 问题是servlet不会死 在执行期间,它只是做了 预定的行动不起作用。
将设置重构为servlet实例共享的单独数据对象(而不是HashMap或servlet实例字段)。更改调度程序/警报以直接更新共享数据对象。