JBoss 4:我在哪里部署全局过滤器?

时间:2012-01-09 16:23:58

标签: servlets jboss servlet-filters jboss-4.2.x

我想使用" global" 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 个答案:

答案 0 :(得分:3)

看看Jboss/server/default/deploy/jboss-web.deployer/conf/web.xml。 甚至有一个全球CommonHeadersFilter的例子。

但是您必须将代码放在JBoss/server/default/lib下的某个jar中。 JBoss无法在Web容器的初始化过程中查看战争中的代码。

答案 1 :(得分:1)

如果缺少类文件,只需将其构建。在myapp包下有一个名为StatisticsFilterHitCount的类,它实现了Filter接口,覆盖

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

           init(FilterConfig filterConfig)

           public void destroy()

并做任何意图。检查一下。