2011-01-24 4 views
3

우리는 서버 측이 API를 노출하는 일부 세션 빈을 가진 EAR 애플리케이션이 될 클라이언트/서버 애플리케이션을 개발할 생각입니다. EJB 모듈의 웹 모듈에 대한 ServletContextListener와 같은 것이 있는지 알고 싶습니다. 그러면 서버 측의 응용 프로그램이 시작될 때 알 수 있습니다.EJB 응용 프로그램을 시작할 때 발생하는 이벤트가 있습니까?

감사합니다.

답변

4

JEE5에서 다른 메커니즘은 없습니다. ServletContextListener는 최고의 휴대용 솔루션입니다.

JEE6에서는 싱글 톤 EJB를 사용할 수 있습니다. @Startup을 사용하여 Singleton EJB에 주석을 달 수 있으며 EJB는 응용 프로그램 시작시 만들어집니다. 따라서 WAR 구성 요소가없는 "순수 EJB"응용 프로그램의 경우이를 수행하는 메커니즘이됩니다.

0

나는 알고 있습니다. this related question을 참조하십시오.

EAR을 보유하고 있으므로 ServletContextListener을 사용할 수 있습니다.

2

Hartung은 기본적으로 정답을 가지고 있지만, 추가 할 퍼즐의 작은 조각이 여전히있을 수 있습니다.

EAR에 여러 EJB 및 웹 모듈이있을 수 있습니다. 때로는 어느 것이 먼저 시작되는지를 아는 것이 필요할 수도 있습니다.

EAR의 META-INF 디렉토리에있는 Java EE 6 application.xml 파일에서 <initialize-in-order>true</initialize-in-order>을 사용하면 이것에 대한 확실성을 얻을 수 있습니다.

나열된 모듈의 순서에 따라 시작 순서가 결정되며 예를 들어 첫 번째 또는 마지막 모듈이 시작될 때 특정 @Startup 주석이있는 Singleton이 호출됩니다.

관련 문제