2009-11-05 79 views
12

我正在为Liferay Portal开发portlet如何禁用Liferay portlet缓存?

我有残疾的CSS和JavaScript缓存由portal-developer.properties文件中使用这些代码:

 
theme.css.fast.load=false 
theme.images.fast.load=false 
javascript.fast.load=false 
javascript.log.enabled=true 
layout.template.cache.enabled=false 
last.modified.check=false 
velocity.engine.resource.manager.cache.enabled=false 
com.liferay.portal.servlet.filters.cache.CacheFilter=false 
com.liferay.portal.servlet.filters.layoutcache.LayoutCacheFilter=false 

但我不知道如何禁用Portlet缓存。

当我更新我的portlet目录中的view.jsp文件时,我必须重新启动Tomcat才能看到更改。

+0

我希望做类似的东西,除了当我对某些数据进行更改时,先前的数据将被缓存,直到进行新的刷新。基本上,Portlet的首选项会进行一些更改,直到页面刷新才显示,而不是在返回页面时显示更改。 – Organiccat 2010-08-11 15:28:39

回答

1

我曾经遇到过一些错位时钟的问题:当你通过网络挂载编辑jsp,并且你的计算机认为它是10:00而服务器认为它已经是10:05时,可能会发生这种情况:

  • 你改变了JSP在10:01
  • 将tomcat看到它并编译 - 一切正常,但到编译页中有10:06
  • 时间戳你又在10改变JSP :03
  • Tomcat看到更改的时间戳并将其与编译页面的时间戳:编译页面更新(时间戳方式),因此没有编译完成,并且页面没有反映您的更新
  • 您感到沮丧,重新启动tomcat,需要2分钟
  • 您在页面纠正另一个错误,现在它的时间戳的10:07
  • Tomcat的将它拾起,编译...

而且,我相信,记住一些“背景”的配置能够改变JSP转换行为。你正在做一个不变的liferay/tomcat包吗?当你在一台机器上工作时也会发生同样的情况吗?当你拿一个新的捆绑包,解压并重试时,会发生同样的事情吗?

0

为什么你重新启动tomcat。只需将您的portlet部署到deploy目录即可。这是最快的。 如果您从Eclipse IDE运行Liferay,我认为这些更改会自动提取。

+0

由于liferay重新加载是垃圾并且经常无法正常工作(文件系统竞争条件丰富)。 – smaudet 2016-08-22 12:56:07

1

在doView方法中使用以下行: ABCUtil.clearCache() 并且还可以在您的portlet部署描述符中使用<expiration-cache>0</expiration-cache>

+1

@ user718609 - 跟随哪一行? _欢迎,但请注意[标记格式帮助](http://stackoverflow.com/editing-help)和[关于帖子签名的常见问题](http://stackoverflow.com/faq) - 使用[您的个人资料页面] (http://stackoverflow.com/users/718609/user718609)或您的答案可能被标记为垃圾邮件._ – McDowell 2011-05-05 13:12:57

1

我发现解决方案中使用MultiVMPoolUtil.clear();

1

之一趋于弄糟JSP重新加载的事情是使像一个奥拉夫科克描述的效果的时区差。通常情况下,您可以在日志文件中找到它,因为它会显示“XXX未来已被修改”之类的内容。

由于这些搞砸了时间戳,新文件将无法正确检测和使用。这可以通过将Tomcat的setenv.bat/setenv.sh文件中的时区更改为适当的值来轻松解决。

5

使用最新版本的Liferay 6.2,您可以打开开发模式。

当使用Liferay的IDE

  1. 转到Servers视图并双击服务器

enter image description here

  • 选择开发模式,保存配置并重启服务器
  • enter image description here

    当不使用的Liferay IDE

    1. 编辑setenv.sh或setenv.bat(适用于Windows)在$ LIFERAY_DIR/$ TOMCAT_DIR /斌/
    2. 添加-Dexternal的属性= portal- developer.properties到CATALINA_OPTS

    参考: https://www.liferay.com/documentation/liferay-portal/6.2/development/-/ai/using-developer-mode-with-themes-liferay-portal-6-2-dev-guide-09-en

    0

    我的问题是,部署没有正在改变我修改javascript源代码的更改。

    创建文件名为:

    portal-ext.properties 
    

    具体目录:

    C:\liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\deployments\ROOT.war\WEB-INF\classes\ 
    

    随着内容:窗口的filesys的

    Shortccomings:

    com.liferay.portal.servlet.filters.cache.CacheFilter=false 
    

    我有其他问题无法在tmp目录中容纳长时间的JBoss文件/路径命名。

    部署是缓存文件,我删除

    构建了缓存的文件,我删除

    线在我的bat文件为构建和部署:

    rd /q /s \liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\tmp\work\jboss.web\default-host\my-portlet 
    rd /q /s \liferay-portal-6.2-ce-ga4\jboss-7.1.1\standalone\deployments\my-portlet.war 
    rd /q /s \liferay-portal-6.2-ce-ga4\liferay-plugins-sdk-6.2\portlets\my-portlet\docroot\WEB-INF\classes 
    ant.bat