2009-11-05 49 views
12

Estoy desarrollando un portlet para Liferay Portal.Cómo deshabilitar la memoria caché del portlet Liferay?

tengo CSS desactivada y el almacenamiento en caché de JavaScript mediante el uso de estos códigos en el archivo 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 

Pero no sé cómo deshabilitar el almacenamiento en caché de portlets.

Cuando actualizo el archivo view.jsp en mi directorio de portlet, tengo que reiniciar Tomcat para ver los cambios.

+0

Estoy mirando para hacer algo similar, excepto cuando realizo cambios en algunos datos, los datos anteriores se almacenan en caché hasta que se realiza una nueva actualización. Básicamente, se realizan algunos cambios en las preferencias del portlet, y no aparecen hasta que la página se actualiza, en lugar de mostrar los cambios al volver a la página. – Organiccat

Respuesta

1

que he tenido este tipo de problemas con algunos relojes desalineados: Al editar el JSP a través de una red de montaje y el equipo cree que es 10:00, mientras que el servidor cree, que ya es 10:05, esto es lo que podría suceder:

  • cambia el JSP a las 10:01
  • el gato lo ve y compila - todo funciona como se esperaba, pero la página compilado tiene una marca de tiempo de 10:06
  • cambia el JSP de nuevo a las 10 : 03
  • Tomcat ve la marca de tiempo modificada y la compara con la fecha y hora de la página compilado: La página compilado es más reciente (marca de tiempo-wise), por lo que no se realiza la compilación y la página no refleja su actualización
  • se siente frustrado, reiniciar Tomcat, que tarda 2 minutos
  • Usted corregir otro error en la página, ahora se ha marcado con la fecha 10:07
  • Tomcat lo recoge, lo compila ...

Además, creo recordar alguna configuración "contexto" que permite cambiar el comportamiento traducción JSP. ¿Estás trabajando en un paquete liferay/tomcat sin cambios? ¿Ocurre lo mismo cuando trabajas en una sola máquina? ¿Ocurre lo mismo cuando tomas un paquete nuevo, descomprimes y lo vuelves a intentar?

0

¿Por qué reinicia Tomcat? Simplemente despliegue su portlet en el directorio de implementación. Es más rápido Y si ejecuta Liferay desde Eclipse IDE, creo que los cambios se recogen automáticamente.

+0

Porque la recarga de liferay es una porquería y a menudo no funciona correctamente (las condiciones de carrera del sistema de archivos en abundancia). – smaudet

1

utilizar la línea siguiente en el método doView: ABCUtil.clearCache() y también puede utilizar <expiration-cache>0</expiration-cache> en el descriptor de despliegue de portlets el suyo.

+1

@ user718609 - ¿Qué siguiente línea? _Bienvenido, pero tenga en cuenta la [ayuda de formato de marcado] (http://stackoverflow.com/editing-help) y [Preguntas frecuentes sobre las firmas en las publicaciones] (http://stackoverflow.com/faq) - use [su página de perfil] (http://stackoverflow.com/users/718609/user718609) o es probable que sus respuestas se marquen como spam._ – McDowell

1

he encontrado la solución de uso MultiVMPoolUtil.clear();

1

Una de las cosas que tiende a estropear JSP recarga es una diferencia zona horaria que causa un efecto como el que Olaf Kock describe. Por lo general, puede detectar esto en los archivos de registro, ya que dirá algo como "XXX se ha modificado en el futuro".

Debido a estas marcas de tiempo atornilladas, el archivo nuevo no se detectará y se usará correctamente. Esto se puede resolver fácilmente cambiando la zona horaria en el archivo setenv.bat/setenv.sh de Tomcat a un valor apropiado.

5

Con la última versión, Liferay 6.2 puede activar el Modo de desarrollo.

Cuando se utiliza el Liferay IDE

  1. Ir a la vista Servidores y haga doble clic en el servidor

enter image description here

  1. Seleccione el modo de desarrollo, guarde la configuración y reinicie el servidor

enter image description here

Cuando no utilice el Liferay IDE

  1. Editar setenv.sh o setenv.bat (para Windows) en $ LIFERAY_DIR/$ TOMCAT_DIR/bin/
  2. Añadir -Dexternal-portal-properties = developer.properties a los CATALINA_OPTS

Referencia: 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

Mi problema era que la implementación no estaba refiriendo los cambios que realicé a la fuente de JavaScript.

crear el archivo con nombre:

portal-ext.properties 

Específicamente en el directorio:

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

Con contenido:

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

Otros problemas que tuve:

Shortccomings de ventanas filesys No se pueden acomodar nombres largos de archivos/rutas JBoss en el directorio tmp.

despliegues de almacenamiento en caché los archivos fueron borrados I

Construye fueron almacenamiento en caché de archivos que he eliminado

líneas en mi archivo del palo para construir y desplegar:

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 
Cuestiones relacionadas