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é?
Répondre
Peut-être cet article aider:
What is the Stateless Session Bean Life Cycle?: l'EJB session sans état est injecté au moment de la création, et conserve les ressources de le long de son temps de vie.
What is the Life Cycle of a Stateful Session Bean?: Il semble que l'injection de dépendance ne se produise qu'au moment de la création. Quoi qu'il en soit, après l'activation, le gestionnaire de rappel @PostActivate est appelé, où vous pouvez récupérer vos éléments transitoires.
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.
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
Excellente question. Aucune idée de ce que la réponse est ... –
voulez-vous dire "activé" (après passivation)? – Bozho
Je pense que ce ne sera pas difficile de l'essayer. – Bozho