# Im PhaseListener auf Stateful Session Bean zugreifen



## andreaska (28. Feb 2011)

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


----------



## bananenkasper (1. Mrz 2011)

Injecten mit @EJB?


```
...
@EJB private MyStatefulSessionBean bean;
...
```


----------



## FArt (1. Mrz 2011)

Logging und Debugging ist ein guter Tipp.


----------



## Nogothrim (1. Mrz 2011)

möglicherweise funzt in PhaseListenern keine Dependency Injection und du musst dir das Objekt per JNDI holen.


----------



## andreaska (2. Mrz 2011)

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


----------



## FArt (3. Mrz 2011)

andreaska hat gesagt.:


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



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.


----------



## andreaska (3. Mrz 2011)

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


----------

