Je suis plutôt novice à JBoss et les annotations. J'ai l'exemple de code suivant. Les détails non pertinents sont coupés.EJB Singleton service échoue au déploiement
@Singleton
@Startup
public class SomeBean {
@Resource
TimerService timerService;
@Inject
AnotherSingleton anotherOne;
Timer timer;
@PostConstruct
private void ejbCreate() {
timer = timerService.createIntervalTimer(0, interval, tc);
}
@Timeout
public void run() throws Exception {
}
}
@Singleton
public class AnotherSingleton {
@Inject
Repository rep;
}
Il est vrai que lorsque la guerre est sur JBoss déploie, il échoue à l'exception du producteur Repository (service dans une autre Jboss ne sont pas disponibles).
Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
Ainsi se termine processus avec
WFLYCTL0186: Services which failed to start: service jboss.deployment.unit."someservices-view.war".component.SomeBean.START
Quelles sont les options dois-je? Puis-je dire à JBoss de ne pas @Inject beans au démarrage, mais quand le code est exécuté par timer? Puis-je attraper une exception? @Schedule est hors de question parce que j'ai besoin de configurer Timer.
Merci pour l'indice. La solution avec Instance <> semble fonctionner correctement. – Eruanno
@Eruanno Si cette réponse a résolu votre problème, veuillez l'accepter en cochant la case à côté de la réponse. –