2014-08-29 59 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