2011-11-04 81 views
3

我正在開發一個項目,應用程序在j2ee中,我使用ehcache進行網頁緩存,但是由於過濾條目的原因,它給了我一個錯誤的內容編碼錯誤,我添加了以下過濾器和ehcache.xml任何人都可以說哪些條目導致它?在web.xml中過濾url模式衝突?

web.xml中過濾器條目

<filter> 
    <filter-name>SetCharacterEncodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>SetCharacterEncodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
    <filter> 
    <filter-name>Pretty Filter</filter-name> 
    <filter-class>com.ocpsoft.pretty.PrettyFilter</filter-class> 
</filter> 
<filter-mapping> 
    <filter-name>Pretty Filter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>ERROR</dispatcher> 
</filter-mapping> 
<filter> 
    <filter-name>extensionsFilter</filter-name> 
    <filter-class>org.apache.myfaces.webapp.filter.ExtensionsFilter</filter-class> 
    <init-param> 
     <description>Set the size limit for uploaded files. 
        Format: 10 - 10 bytes 
        10k - 10 KB 
     </description> 
     <param-name>uploadMaxFileSize</param-name> 
     <param-value>100m</param-value> 
    </init-param> 
    <init-param> 
     <description>Set the threshold size - files below this limit are stored 
      in memory, files above this limit are stored on disk. 
        Format: 10 - 10 bytes 
        10k - 10 KB 
     </description> 
     <param-name>uploadThresholdSize</param-name> 
     <param-value>100k</param-value> 
    </init-param> 
    <init-param> 
     <param-name>uploadRepositoryPath</param-name> 
     <param-value>/home</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>extensionsFilter</filter-name> 
    <url-pattern>*.jsf</url-pattern> 
    <dispatcher>FORWARD</dispatcher> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>ERROR</dispatcher> 
</filter-mapping> 
<filter> 
    <filter-name>CachePage1CachingFilter</filter-name> 
    <filter-class>net.sf.ehcache.constructs.web.filter.SimplePageCachingFilter</filter-class> 
    <init-param> 
     <param-name>suppressStackTraces</param-name> 
     <param-value>false</param-value> 
    </init-param> 
    <init-param> 
     <param-name>cacheName</param-name> 
     <param-value>CachePage1CachingFilter</param-value> 
    </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>CachePage1CachingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
    <dispatcher>INCLUDE</dispatcher> 
    <dispatcher>FORWARD</dispatcher> 
</filter-mapping> 

ehcache.xml中是遵循

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"> 

<diskStore path="java.io.tmpdir"/> 
<defaultCache 
    maxElementsInMemory="10" 
    eternal="false" 
    timeToIdleSeconds="5" 
    timeToLiveSeconds="10" 
    overflowToDisk="true" 
/> 
<!-- Page and Page Fragment Caches --> 
<cache name="CachePage1CachingFilter" 
    maxElementsInMemory="10" 
    eternal="false" 
    timeToIdleSeconds="10000" 
    timeToLiveSeconds="10000" 
    overflowToDisk="true"> 
</cache> 

編輯: -

我想和我有問題是因爲網址格局

<filter-name>CachePage1CachingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 

在過濾器上,不斷進入過濾器的例外是折返例外,如果我寫以下

<filter-name>CachePage1CachingFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 

它工作正常,但我希望它爲JSF和JSF的條目曾在preety配置完成like follow

<url-mapping id="ManageUsers"> 
    <pattern>/manageUsers</pattern> 
    <view-id>/pages/master/manageUsers.jsf</view-id> 
</url-mapping> 

我應該怎麼做才能避免這種情況?

+0

它如果您發佈包括堆棧跟蹤在內的確切錯誤消息,將有所幫助 – beny23

回答

4

隨着Servlet規範2.5(被Tomcat 6實現的),您可以指定多個URL模式:

<filter-mapping> 
    <filter-name>CachePage1CachingFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
    <url-pattern>*.jsf</url-pattern> 
</filter-mapping> 

對於2.5之前,你可以指定兩個映射

<filter-mapping> 
    <filter-name>CachePage1CachingFilter</filter-name> 
    <url-pattern>*.jsp</url-pattern> 
</filter-mapping> 
<filter-mapping> 
    <filter-name>CachePage1CachingFilter</filter-name> 
    <url-pattern>*.jsf</url-pattern> 
</filter-mapping>