Java EE 5 및 Websphere 7.0에 webproject가 있습니다. 스케줄러를 만들고 배포 응용 프로그램을 시작해야합니다. 내가 인터페이스를 EJB를 만들 :배포 완료 후 시작 스케줄러
@Local
public interface ISchedulerBean {
public void executeTimer(Timer timer);
public void createTimer();
}
무 상태 세션 빈은이 인터페이스를 구현 해봤 어떤 . 메서드 createTimer는 TimerService에서 timer 인스턴스를 만듭니다. 이 코드 부분은 잘 동작합니다. 또한 응용 프로그램 배포 후에 createTimer 메서드()를 호출해야합니다. 내가 시도 :
이리스너의 servletContext 추가
공용 클래스 SchedulerInitialiserContextListener는 ServletContextListener { EJB 개인 WebServiceLocator의 webServiceLocator를 조회하기 // 서비스를 구현을; private SchedulerService schedulerService;
public SchedulerInitialiserContextListener() { webServiceLocator = new WebServiceLocator(); schedulerService = webServiceLocator.getSchedulerService(); INIT에서() 메소드를 SchedulerBean 주입하고 createTimer 전화 여기서
}}public void contextDestroyed(ServletContextEvent ctx) { } public void contextInitialized(ServletContextEvent ctx) { schedulerService.createTimer(); }
1 서블릿을 생성한다.
하지만 먼저 webspere에서 웹 응용 프로그램을 배포 청취자 전화, 서블릿을 초기화 만 모든 EJB이 위치한 ejb.jar를 배포하기 때문에이 작동하지 않습니다. Webshpere 로그 파일에서 확인할 수 있습니다. 그래서 내가 ejb를 던지려고 할 때 @EJB 어노테이션이나 룩업이 Exception을 얻는다. beacause ejb가 발견되지 않았다. ejb 모듈을 배포하거나 배포 순서를 변경 한 후 타이머를 시작하는 다른 방법이있을 수 있습니까?
감사합니다 당신이 당신의 빌드 프로세스에 패키지 있는지 확인하십시오! 너의 ansfer가 나를 도왔다. – Balconsky