@Named Bean に注入されたすべての会話オブジェクトに対してグローバルに会話タイムアウトを設定することは可能ですか?
私はいくつかの @ConversationScoped Bean を持っています。
import javax.annotation.PostConstruct;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;
@Named
@ConversationScoped
public class SomeBean1 {
@Inject
private Conversation conversation;
@PostConstruct
private void init() {
if (conversation.isTransient()) {
conversation.begin();
}
}
}
@Named
@ConversationScoped
public class SomeBean2 {
@Inject
private Conversation conversation;
@PostConstruct
private void init() {
if (conversation.isTransient()) {
conversation.begin();
}
}
}
これらの会話のデフォルトのタイムアウトは 600000 ミリ秒です。会話のタイムアウトをグローバルに設定する方法があるかどうか、または各 Bean で設定する必要があるかどうかを知りたい
if (!conversation.isTrainsient()) {
conversation.setTimeout(MY_CUSTOM_TIMEOUT);
}
(問題は、多数の CDI Bean があり、それぞれに手動でタイムアウトを設定することが最善の解決策ではないことです)