我有一个SessionScoped bean ProcessListBean有两个方法startProcess和stopProcess如下
public void startProcess(){
timer.schedule(new TimerTask(){
public void run {
//start after 10seconds
}
},10000);
}
public void stopProcess(){
timer.schedule(new TimerTask(){
public void run {
//stop after 10seconds
}
},10000);
}
和ManagedBean类为;
@Component("processListBean")
@Scope("session")
public class ProcessListBean{
Timer timer;
//methods and other resources such as DAO
}
当我在JSF视图中按下启动commandButton时,执行processListBean-> startProcess动作, 10秒后,当我在jSF视图中按下stop commandButton时,执行processlistStopProcess。 在那种情况下(反之亦然停止 - 启动,开始 - 停止),我有计时器已取消异常, 我在J2SE中没有遇到过这样的异常,我认为Spring Framework中的会话管理有问题,或者我错过了一些观点。
我还将计时器初始化移动到@PostConstruct但尚未解决我的问题。