Bonjour ,

actuellement je garde les données réutilisables par tous les utilisateurs d'une application en un application scoped bean ( nommé dataApplicationScoped ) .
ces données la ( comme liste des villes ) sont mis a jour de temps en temps j'ai implémenté la mise a jour comme ceci ( le bean application scoped est appelé dans un managed bean ou j' ajout les villes ):

après chaque ajout d'une ville par exemple j’exécute le code suivant


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
DataApplicationScoped  dataApplicationScoped;

dataApplicationScoped =(DataApplicationScoped)FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(FacesContext.getCurrentInstance().getELContext(), null, "dataApplicationScoped");

dataApplicationScoped.refrechCity();

dans le code du bean application on trouvera

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
...
@ManagedBean(eager=true)
@ApplicationScoped
public class DataApplicationScoped {

    @EJB
    private CityFacade cityFacade;

 private List<City> listcity = new ArrayList<City>();
   
    public DataApplicationScoped() {

 }

     @PostConstruct
     public void initialize(){
     listcity = cityFacade.findallcities();
     }

public void refrechCity(){
    listcity = cityFacadeFacade.findallcities();
}
.
.
.
le code marche, les données partagées sur toute l'application sont mis a jour mais ...

es la bonne manière de faire ?
comment faite vous pour mettre a jour des données en application scoped ?

Cordialement