2013-04-24 25 views
1

我正在使用JSP & Servlets開發Web應用程序。使servlet過濾器適用於EAR中的所有Web應用程序

我開發了一個用於登錄目的的servlet過濾器。其中檢查用戶是否登錄,如果用戶登錄,則允許訪問請求的資源,否則將請求重定向到登錄頁面。它完美的作品。

的web.xml

<filter> 
    <filter-name>MyFilter</filter-name> 
    <filter-class>com.myfilter.MyFilter</filter-class> 
    <init-param> 
     <param-name>PARAM_NAME_HERE</param-name> 
     <param-value>PARAM_VALUES_HERE</param-value> 
    </init-param> 
</filter> 

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

如果我把上面的代碼中Tomcat首頁 - > conf->的web.xml然後過濾器是適用於部署在Tomcat的所有應用程序。(這是我想在GlassFish中實現的EAR文件)

但現在some reasons我已經決定轉移到Glassfish的。現在我創建了A EAR文件,其中包含兩個應用程序(WAR)1.Login2. Profiles。過濾器位於Login Application中的com.filter包中,而不存在於Profiles中。

我的問題是,我應該在哪裏放置XML以上的代碼,以確保過濾器適用於EAR中的所有應用程序(WAR)?

UPDATE1

如果我在defualt-web.xml這是目錄glassfish\domains\domain1\config\下把上面的XML代碼,然後它適用於Login廣告應用程式,但不是爲Profiles應用程序,它是在同一個EAR文件。

有日誌中錯誤:
異常開始過濾MyFilterName java.lang.InstantiationException
.....
.....
產生的原因:拋出java.lang.ClassNotFoundException:com.myfilter .MyFilterName

[注:過濾器是在Login應用程序(WAR),而不是在Profiles應用程序(WAR)

所以,我應該怎麼做這個適用於Profiles(EAR中的所有WAR)。

回答

1

將放入您的過濾器的罐子放入glassfish\domains\domain1\lib文件夾中

相關問題