저는 JBoss와 주석에 초보자입니다. 다음 코드 예제가 있습니다. 관련없는 세부 정보는 삭제됩니다.EJB Singleton 서비스가 배포시 실패합니다.
@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;
}
전쟁이 JBoss에 배포되는 경우 Repository 생성자 (다른 Jboss의 서비스를 사용할 수 없음)에서 예외가 발생하는 경우가 있습니다.
Caused by: java.lang.IllegalStateException: WFLYEE0042: Failed to construct component instance
그래서 과정은
WFLYCTL0186: Services which failed to start: service jboss.deployment.unit."someservices-view.war".component.SomeBean.START
내가 어떤 옵션이 있습니까로 끝? 시작시 @Inject Bean을하지 않고 타이머로 코드를 실행하도록 JBoss에 알릴 수 있습니까? 나는 어떻게 든 예외를 잡을 수 있습니까? Timer를 구성해야하기 때문에 @Schedule이 유용하지 않습니다.
힌트를 보내 주셔서 감사합니다. Instance <>가있는 솔루션은 정상적으로 작동하는 것 같습니다. – Eruanno
@ Eruanno이 답변으로 문제가 해결 된 경우 대답 옆에있는 체크 표시를 선택하여 동의하십시오. –