Is the @Resource
annotation on a method applied when an EJB
is deserialized? I have a EJB Timer thats persisted by the container and would like to know if the transient TimerService
(it's not serializable) will be injected again when the EJB is deserialized.
Perhaps this articles help:
Stateless Session Bean: the stateless session EJB is injected at creation time, and keeps it's resources along its life time.
Stateful Session Bean: It seems that the dependency injection only occurs at creation time. Anyway, after activation, the @PostActivate callback Handler is invoked, where you could recover your transient elements.
Edit for adding the Java EE Tutorial link on this subject, which confirms what is exposed:
So, as a conclusion, the answer is no, the container won't inject again your transient resources after activation, but you can implement a PostActivate handler to do it by your own means.