処理に 50 秒かかる大きなアクションがあります。しかし、同時に、サーバー上で (リンクをクリックすることで) 処理できる別のアクションがあります。
ただし、2 番目のアクションが最初のアクションによって設定されたセッションの属性にアクセスしようとすると、それらは最初のアクションが終了するまで利用できません。
これは私の大きな行動です:
public String bigAction() {
HttpSession session = request.getSession();
synchronized (session) {
for(int i = 0 ; i < 100000 ; ++i)
session.setAttribute("foo_"+i, "bar");
}
return SUCCESS;
}
そして、これは私の小さなアクションです:
public String smallAction() {
HttpSession session = request.getSession();
synchronized (session) {
session.getAttribute("foo_1", "bar");
}
return SUCCESS;
}
最初のアクション: --------------------------------------------------- 2 番目のアクション: --- -- --- - ---
したがって、この例では、2 番目のアクションは最初のアクションによって作成されたセッションの属性を必要としますが、実際には存在しません。
セッションを同期するにはどうすればよいですか?