Запуск 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, мне интересно, есть ли что-то, что поднимает этот класс, что я могу наблюдать. Хотя я ничего особенного не заметил.

Любая подсказка, что еще я мог бы попробовать?


person Lee Theobald    schedule 08.09.2011    source источник
comment
Не имеет прямого отношения к вопросу, но JBoss 7 действительно быстрый, и это контейнер JEE. Использование простого контейнера сервлета, такого как Tomcat, вызывает проблемы с конфигурацией.   -  person Petar Minchev    schedule 08.09.2011
comment
@Петар Ты прав. Переход на что-то вроде JBoss AS поможет делу. Но это решение компании, поэтому я пока остановился на Tomcat!   -  person Lee Theobald    schedule 08.09.2011


Ответы (1)


Выяснил, что моя проблема была в конфигурации. Я не видел, чтобы мне требовалась дополнительная настройка из-за того, что я работал на Tomcat 6: http://docs.jboss.org/seam/3/servlet/latest/reference/en-US/html/servlet-install.html#installation.pre-servlet-3

Небольшое примечание к документации на этой странице в ее нынешнем виде, когда я пишу это, класс для «Фильтр исключений перехвата» должен быть «org.jboss.seam.servlet.exception.CatchExceptionFilter». В документации отсутствует «исключение». Кажется, это было исправлено в коде Seam Servlet, поэтому я полагаю, что эта ошибка будет исправлена ​​​​в следующий раз, когда будет выпущена документация.

person Lee Theobald    schedule 08.09.2011