Начиная с EJB 3.1, одноэлементные компоненты могут быть уведомлены о запуске и остановке модуля:
@Singleton
@Startup
public class StartupBean {
@PostConstruct
private void postConstruct() { /* ... */ }
@PreDestroy
private void preDestroy() { /* ... */ }
}
До EJB 3.1 не было стандартного решения, предназначенного только для EJB. Я бы предложил добавить WAR к вашему EAR и использовать обработчик контекста сервлета.