Czy jest możliwe ustawienie limitu czasu konwersacji dla wszystkich obiektów konwersacji wprowadzonych do @Named?Ustawianie limitu czasu rozmów CDI na świecie
Mam kilka @ConversationScoped fasolę, np .:
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();
}
}
}
Domyślny limit czasu dla tych rozmów jest 600000 ms. Chcę wiedzieć, czy jest jakiś sposób ustawić limity czasu rozmów globalnie czy muszę ustawić go w każdej fasoli przez
if (!conversation.isTrainsient()) {
conversation.setTimeout(MY_CUSTOM_TIMEOUT);
}
(problemem jest to, że istnieje wiele CDI fasoli i ustawienie limitu czasu ręcznie w każdej z nich nie jest najlepszym rozwiązaniem)
jak niektóre odpowiedzi poniżej wykazały, tam nieprawdaż jest to standardowy sposób robienia tego. Wszystko, co robisz (nie licząc odpowiedzi Stasala), nie będzie przenośne. – LightGuard