Запуск POJO в приложении Weld/Seam3
Я пытаюсь запустить POJO при запуске в приложении Weld/Seam3, но мне не везет. Я пробовал следующее, но ни один из них не работал:
@Singleton
public class StartupJobs {
@Inject
private Logger log;
public void onStartup(@Observes @Initialized ServletContextEvent event) {
log.info("Starting startup jobs");
}
public void onStartupTwo(@Observes @Initialized WebApplication webApplication) {
log.info("Starting startup jobs");
}
}
-
// Guessing this way is no good as I can't use the javax.ejb.Startup annotation here
@ApplicationScoped
public class StartupJobs {
@Inject
private Logger log;
@PostConstruct
public void onStartup() {
log.info("Starting startup jobs");
}
}
Но ни один из этих способов не сработал. Мое сообщение журнала никогда не поднималось. Поскольку это приложение запущено на Tomcat6, и мне пришлось добавить прослушиватель "org.jboss.weld.environment.servlet.Listener" в мой файл web.xml, мне интересно, есть ли что-то, что вызывает этот класс, что я мог бы наблюдать. Я не заметил ничего особенного.
Любая подсказка, что еще я мог попробовать?
1 ответ
Обнаружил, что моя проблема была в конфигурации. Я не видел, что мне нужна дополнительная настройка, потому что я был на Tomcat 6: http://docs.jboss.org/seam/3/servlet/latest/reference/en-US/html/servlet-installation.html
В краткой заметке о документации на этой странице в том виде, в каком она написана, класс "Фильтр исключений Catch" должен быть "org.jboss.seam.servlet.exception.CatchExceptionFilter". В документации отсутствует "исключение". Кажется, это было исправлено в коде Seam Servlet, поэтому я думаю, что эта ошибка будет исправлена в следующий раз, когда будет выпущена документация.