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.
Is the @Resource annotation on a method applied when an EJB is deserialized? I
Share
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.