2010-11-24 2 views
6

L'annotation @Resource est-elle appliquée à une méthode appliquée lorsqu'un EJB est désérialisé? J'ai un EJB Timer qui est persisté par le conteneur et je voudrais savoir si le transitoire TimerService (il n'est pas sérialisable) sera injecté à nouveau lorsque l'EJB est désérialisé.L'annotation @Resource est-elle appliquée lorsqu'un EJB sans état est désérialisé?

+1

Excellente question. Aucune idée de ce que la réponse est ... –

+0

voulez-vous dire "activé" (après passivation)? – Bozho

+0

Je pense que ce ne sera pas difficile de l'essayer. – Bozho

Répondre

3

Peut-être cet article aider:

Modifier pour ajouter Java EE lien Tutoriel sur ce sujet, ce qui confirme ce qui est exposé:

Ainsi, en guise de conclusion, la réponse est non, la Le conteneur n'injectera plus vos ressources transitoires après l'activation, mais vous pouvez implémenter un gestionnaire PostActivate pour le faire par vos propres moyens.

+0

Merci pour le lien 'JEE tutorial'. Sur les beans sans état (http://download.oracle.com/javaee/5/tutorial/doc/bnbmt.html#bnbmw) 'Parce qu'un bean session sans état n'est jamais passivé, son cycle de vie n'a que deux étapes: inexistant et prêt pour l'appel de méthodes métier. »L'EJB Timer est probablement sérialisé de sorte qu'il peut exister lors des redémarrages du serveur. Cependant, lorsque cela est nécessaire et non disponible, une nouvelle instance est toujours créée et l'injection de dépendance fonctionne. – n002213f

Questions connexes