2012-01-09 65 views
3

我想使用「全局」HTTP過濾器。JBoss 4:我應該在哪裏部署全局過濾器?

爲此,我編輯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

回答

3

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

但是你將不得不把代碼放在一些罐子下JBoss/server/default/lib。在Web容器的初始化過程中,JBoss無法查看war中的代碼。

+0

太棒了!有效!在我的情況下,工件的正確目標是'server/dorun/lib /'。哦,我不得不將包裝更換成罐子。 – 2012-01-12 08:11:33

0

如果類文件丟失,只需構建它。應該有與它實現了Filter接口的myapp包下的戰爭裏面的名字StatisticsFilterHitCount類,覆蓋

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

      init(FilterConfig filterConfig) 

      public void destroy() 

,並做什麼它的意思做。檢查這一點。

+0

是的,這個班級編號絕對在那裏,我寫了。所以這不是問題;)正如我在問題中提到的那樣:在處理'deploy/jboss-web.deployer/conf/web.xml'時,我的工件(包含此類)尚未加載(I承擔)。 – 2012-01-10 08:43:53

+0

@IviviVavava對不起 - 沒有看到痕跡就不能說更多... – 2012-01-10 08:47:36