现在的位置: 首页 > 综合 > 正文

终于解决了liferay的缓存问题!

2013年01月05日 ⁄ 综合 ⁄ 共 2356字 ⁄ 字号 评论关闭

板 要我编写一个统计页面访问量的Portlet,整了快20天了,始终因为liferay在未signin时页面不刷新,而无法解决每个领域的访问量统计。 一直怀疑是Tomcat的缓存在作梗,网上搜罗了好几天,试过了N种方法,就是不行。今天突然发现下面文章,眼睛顿时一亮:

liferay页面缓存问题解决

  Liferay页面使用缓存,在未登录时,页面只做一次加载,即使对JSP文件修改,页面有时也没法重新加载。但在登录之后,每一个请求每一个页面时都会重新加载。在网上查了很多资料,使用那些方法对一般的JSP页面都有作用,但对Liferay却没有效果。
  经过研究发现,Liferay缓存是通过filter实现的,即 com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter,在 system.properties中有对应的设置, com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter=false,则 每次都有对服务器重新请求。

飞速按他说的去做,发现没反映,研究发现,这只是针对开发环境的设置。所以在Tomcat目录中找到
web.xml(D:/lifeportal/tomcat/webapps/ROOT/WEB-INF),打开后修改如下:
将:
<filter>
        <filter-name>Layout Cache Filter - Friendly</filter-name>
        <filter-class>com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter</filter-class>
        <init-param>
            <param-name>pattern</param-name>
            <param-value>0</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>Layout Cache Filter - Layout</filter-name>
        <filter-class>com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter</filter-class>
        <init-param>
            <param-name>pattern</param-name>
            <param-value>1</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>Layout Cache Filter - Resource</filter-name>
        <filter-class>com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter</filter-class>
        <init-param>
            <param-name>pattern</param-name>
            <param-value>2</param-value>
        </init-param>
    </filter>

改为:<filter>
        <filter-name>Layout Cache Filter - Friendly</filter-name>
        <filter-class>com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter</filter-class>
        <init-param>
            <param-name>pattern</param-name>
            <param-value>0</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>Layout Cache Filter - Layout</filter-name>
        <filter-class>com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter</filter-class>
        <init-param>
            <param-name>pattern</param-name>
            <param-value>0</param-value>
        </init-param>
    </filter>
    <filter>
        <filter-name>Layout Cache Filter - Resource</filter-name>
        <filter-class>com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter</filter-class>
        <init-param>
            <param-name>pattern</param-name>
            <param-value>0</param-value>
        </init-param>
    </filter>

 

抱歉!评论已关闭.