Я наблюдаю, что мой bean-компонент requestScoped, описанный ниже, создается несколько раз за один запрос.Каждый раз, когда бин восстанавливается, совсем недавно боб был уничтожен, как говорится в журналах.
@ManagedBean(name="namesDirectory")
@RequestScoped
public class NamesDirectory {
public static NamesDirectory getCurrentInstance(){
FacesContext context = FacesContext.getCurrentInstance();
return context.getApplication().evaluateExpressionGet(context, "#{namesDirectory}", NamesDirectory.class);
}
@PostConstruct
public void foo(){
Easy.log("bean created");
}
@PreDestroy
public void foo1(){
Easy.log("bean destroyed");
}
}
В чем может быть причина того, что бин уничтожается перед обработкой единственногозапрос завершен, и как мне позаботиться о том, чтобы это не происходило?
Редактировать:
У меня было <p:graphicImage url="#" />
в некоторых местах в моем коде Facelets, которые вызывали запросысрабатывает несколько раз.После их удаления я все еще вижу этот запрос созданным, но всего два раза, когда раньше он был много раз.
На самом деле я вижу это при попытке войти в мое приложение.Таким образом, после предоставления учетных данных и их проверки создается экземпляр компонента и используется его компонент, но именно после этого пользователь перемещается на страницу успешного входа в систему, и при создании которой компонент снова необходим, поэтому он создается как есть.не существуетЭто приводит к тому, что bean-объект области видимости запроса создается 2 раза, поскольку, как я считаю, это всего лишь один запрос.