Come è definita la sessione nel bean CDI @SessionScoped
?
Questa annotazione è valida solo se richiamata dal contenitore Servlet, dove la sessione è ben definita nella forma di HttpSession
?Come funziona @SessionScoped con EJB? Il CDI è solo per il livello Web?
In caso contrario, rispetto a come un EJB con @Inject @SessionScoped MyBean myBean
può sapere quale è realmente la sessione? Voglio dire, i metodi di questo EJB potrebbero essere stati invocati da un client standalone, RESTful WS o da qualche altra vista.
Cosa dovrebbe accadere in questo caso? Se l'annotazione non ha alcun significato, dovrebbe iniettare nuova istanza MyBean
per ogni richiesta o forse dovrebbe mantenere la stessa istanza su tutte le richieste?
In realtà, in quale altro modo viene definita una sessione anche per qualcosa come un SFSB? Naturalmente non c'è nulla che ti impedisca di creare il tuo ambito e legarlo a qualsiasi cosa tu voglia. – LightGuard
@LightGuard, immagino che in SFSB la "sessione" duri dall'istanziazione SFSB alla sua rimozione (o timeout). Quindi finché avrò un riferimento a questo, colpirò lo stesso ambiente (sessione). –
@Gonzalo, grazie per queste informazioni. Mi chiedo: cosa dovrebbe succedere se usassi il bean '@ SessionScoped' in un ambiente in cui non esiste tale ambito (ad esempio REST WS come menzionato in questione). Ogni richiesta viene considerata come una nuova sessione? Che dire di SFSB, come menzionato da LightGuard. Il '@ SessionScoped' si riferirà alla sessione' HttpSession' o alla sessione SFSB? –