Im PhaseListener auf Stateful Session Bean zugreifen

andreaska

Mitglied
Hi,

ich habe einen PhaseListener mit PhaseId.RESTORE_VIEW und setzte von dort aus ein attribut einer stateful session bean. die stateful session bean verwende ich, da ich um an den attributwert zu kommen einen webservice benutzen muss, was nur einmal pro benutzersession erfolgen soll.

leider ist das entsprechende attribut immer null wenn ich es später probiere von einer jsf seite aus aufzurufen. obwohl es im phaselistener 100%ig gesetzt wurde. hat da vieleich jemand nen tip?

Gruß Andreas
 
Injecten mit @EJB?

Java:
...
@EJB private MyStatefulSessionBean bean;
...
 
Hi,

das hatte ich sowieso schon gemacht, also die EJB per JNDI geholt. Richtig, Dependency Injection funktioniert hier nicht.

Es scheint ganz einfach so zu sein, daß es nicht möglich ist eine stateful session bean im PhaseListener zu verwenden, da man anscheinend eine andere Instanz bekommt als später die Managed Bean. Schade. Ich werd dann einfach eine HttpSession verwenden statt der ManagedBean um die Objekte über die Session zu speichern.

Gruß Andreas
 
Hi,

das hatte ich sowieso schon gemacht, also die EJB per JNDI geholt. Richtig, Dependency Injection funktioniert hier nicht.

Es scheint ganz einfach so zu sein, daß es nicht möglich ist eine stateful session bean im PhaseListener zu verwenden, da man anscheinend eine andere Instanz bekommt als später die Managed Bean. Schade. Ich werd dann einfach eine HttpSession verwenden statt der ManagedBean um die Objekte über die Session zu speichern.

Gruß Andreas

Tja, mit EJB2 war noch offensichtlicher, wenn man ein Bean benutzt was passiert. Du "bekommst" vermutlich kein Bean, sondern erstellst immer eines.. also zwei.
Über das Beanhandle der SFSB kann man die Beaninstanz an jemand anders weitergeben.
 
Hi,

danke für die Antwort. Ich bin mir nicht sicher, was du meinst. Was meinst du mit Beanhandle?
Gibt es doch einen Weg zu verhindern, daß jedesmal eine neue Bean erstellt wird?

Gruß Andreas
 

Zurück
Oben