JBoss 4: где я могу развернуть глобальные фильтры? - PullRequest
3 голосов
/ 09 января 2012

Я хочу использовать «глобальные» фильтры HTTP.

Для этого я отредактировал deploy/jboss-web.deployer/conf/web.xml и добавил:

<filter>
    <filter-name>StatisticsFilterHitCount</filter-name>
    <filter-class>myapp.StatisticsFilterHitCount</filter-class>
</filter>

<filter-mapping>
    <filter-name>StatisticsFilterHitCount</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

Теперь, когда я запускаю сервер, ни одного артефактамогут быть развернуты.Огромное исключение регистрируется при каждой попытке развертывания.Извините, не могу вставить это здесь.Я предполагаю, что во время развертывания класс фильтра еще не существует.

Итак, где (и как) мне нужно развернуть такой фильтр глобально?

В настоящее время он находится в applications/5apps, упаковка .war.

Ответы [ 2 ]

3 голосов
/ 11 января 2012

Посмотрите на Jboss/server/default/deploy/jboss-web.deployer/conf/web.xml.Есть даже пример глобального CommonHeadersFilter.

Но вам придется поместить код в какой-нибудь jar-файл под JBoss/server/default/lib.JBoss не может посмотреть код военного процесса при инициализации веб-контейнера.

1 голос
/ 10 января 2012

Если файл класса отсутствует, просто создайте его. Внутри войны в пакете myapp должен быть класс с именем StatisticsFilterHitCount, который реализует интерфейс фильтра, переопределяет

           doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException 

           init(FilterConfig filterConfig)

           public void destroy()

и делает все, что задумано. Проверьте это.

...