Probabilmente la mia domanda è banale, ma non ho mai usato un bean scope di applicazione prima. Ho bisogno del bean dell'applicazione perché devo fare transazioni che richiedono tempo sul database. la mia ricerca non ha soddisfatto la mia curiosità. Non so perché, ma non sono riuscito a inizializzare il bean (è nullo) o l'app si è bloccata. Così ho un bean ambito di applicazioneJSF application scope instantiation and injection
@ManagedBean(eager=true)
@ApplicationScoped
public class ApplicationContainer {
...
}
desiderosi = true Ho letto che dice JSF per avviare il fagiolo ogni volta in cui viene avviato il server di applicazione (io uso GlassFish).
Ho letto in diversi punti che devo solo mettere questa annotazione e il bean viene inizializzato. Per me non ... Dopo che ho letto che se voglio iniettare il chicco di applicazione in un altro bean devo usare @PostConstuct annotazione
@ManagedBean
@SessionScoped
public class TestsBean implements Serializable {
private static final long serialVersionUID = 1L;
@ManagedProperty(value = "#{container}")
private ApplicationContainer container;
@PostConstruct
public void init() {
container.contructContainer();
}
questo dà un errore in altri fagioli che mi inietto the TestsBean in ...
- se il bean dell'applicazione viene inizializzato all'avvio del server, quale metodo chiama nel corpo del bean dell'applicazione per eseguire le azioni richieste? O nel bean iniettato è fatto nel metodo post costrutto?
Per favore dimmi il modo corretto di gestire i bean di applicazione. Sono davvero confuso ...
Grazie a tutti per il vostro tempo!
Grazie BalusC per la vostra ampia risposta Non ho inserito la mia eccezione nella domanda perché volevo essere una domanda generale, non specifica. Ho pensato che i bean degli scope dell'applicazione necessitassero di un'inizializzazione più specifica, diversa dal resto e non ho trovato un'inizializzazione corretta, solo frammenti. Ancora grazie per il tuo tempo! – CyberGriZzly