2014-08-29 71 views
0

我有一個servlet,託管在Websphere v7中,我想要緩存。該servlet通過以下任一路徑通過pathinfo緩存Websphere servlet

/分析/ ABC /分析/ DEF

與該servlet本身被映射到/分析/和檢索ABC或經由PATHINFO DEF的訪問。

我想同時緩存網址(即2項的動態緩存),我已經使用了以下cachespec.xml文件:

<cache-entry> 
     <class>servlet</class> 
     <name>/analysis</name> 
     <name>/parser.jsp</name> 
     <name>com.at.servlets.EdisonParser</name> 
     <name>com.at.servlets.EdisonParser.class</name>  
     <cache-id> 
     <component id="" type="pathinfo"> 
      <required>true</required> 
     </component> 

     <timeout>180</timeout> 
     </cache-id> 
    </cache-entry> 

這工作,在響應緩存。但是它只爲兩個URL存儲一個緩存條目,所以通過點擊任一頁可以獲得相同的結果。我如何告訴它將兩個URL視爲單獨的條目?

+0

但是你沒有/分析在這裏任何地方的名稱。我從來沒有在一個緩存條目中看到多個元素。也許嘗試爲每個servlet分別定義。 – Gas 2014-08-29 13:19:10

+0

上面編輯。我只有1個servlet - 根據紅皮書,可以使用多個名稱元素。 – Jamie 2014-08-29 13:23:24

回答

0

你可以有多個<name>元素,如果適用於相同的 servlet。檢查here。引用:

你可以指定一個緩存條目中的多個名稱的元素,如果你 有指向同一個servlet的不同映射。

我已經定義了以下cachespec.xml

<cache-entry> 
     <class>servlet</class> 
     <name>servlet.PathServlet.class</name> 
     <cache-id> 
     <component id="" type="pathinfo"> 
      <required>required</required> 
     </component> 
     <timeout>180</timeout> 
     </cache-id> 
    </cache-entry> 

它工作正常,因爲我可以看到在cachemonitor 3項不同的內容:

enter image description here