2010-11-24 2 views
6

Wird die @Resource Annotation auf eine Methode angewendet, wenn eine EJB deserialisiert wird? Ich habe einen EJB-Timer, der vom Container beibehalten wird und möchte wissen, ob der Transient TimerService (er ist nicht serialisierbar) erneut injiziert wird, wenn der EJB deserialisiert wird.Wird die @Resource-Annotation angewendet, wenn ein zustandsloses EJB deserialisiert wird?

+1

Ausgezeichnete Frage. Keine Ahnung, was die Antwort ist ... –

+0

meinst du "aktiviert" (nach der Passivierung)? – Bozho

+0

Ich denke, es wird nicht schwer sein, es zu versuchen. – Bozho

Antwort

3

Vielleicht ist dieser Artikel helfen:

bearbeiten zu diesem Thema der Java EE Tutorial Link für das Hinzufügen, das bestätigt, was ausgesetzt:

So, als Abschluss, lautet die Antwort nein, die Container wird Ihre transienten Ressourcen nach der Aktivierung nicht erneut injizieren, aber Sie können einen PostActivate-Handler implementieren, um dies auf Ihre eigene Weise zu tun.

+0

Danke für den Link 'JEE tutorial'. Auf Staatenlosen Bohnen (http://download.oracle.com/javaee/5/tutorial/doc/bnbmt.html#bnbmw) 'Da eine Stateless-Session-Bean niemals passiviert wird, hat ihr Lebenszyklus nur zwei Stufen: nicht vorhanden und bereit für der Aufruf von Geschäftsmethoden. Das Timer-EJB wird höchstwahrscheinlich serialisiert, so dass es über Server-Neustarts hinweg existieren kann. Wenn es jedoch benötigt wird und nicht verfügbar ist, wird immer eine neue Instanz erstellt, und die Abhängigkeitsinjektion funktioniert. – n002213f