Подтвердить что ты не робот

Как отключить кеш портлета Liferay?

Я разрабатываю portlet для Liferay Portal.

Я отключил кеширование 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

Но я не знаю, как отключить кэширование портлетов.

Когда я обновляю файл view.jsp в своем каталоге портлетов, я должен перезапустить Tomcat, чтобы увидеть изменения.

4b9b3361

Ответ 1

В последней версии Liferay 6.2 вы можете включить режим разработки.

При использовании Liferay IDE

  • Перейдите в представление "Серверы" и дважды щелкните по серверу.

enter image description here

  1. Выберите режим разработки, сохраните конфигурацию и перезапустите сервер.

enter image description here

Если вы не используете Liferay IDE

  • Изменить setenv.sh или setenv.bat(для Windows) в $LIFERAY_DIR/$TOMCAT_DIR/bin/
  • Добавить -Dexternal-properties = 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

Ответ 2

У меня были такие проблемы с некоторыми несогласованными часами: когда вы редактируете jsp через сетевое соединение, и ваш компьютер считает, что 10:00, пока сервер считает, что это уже 10:05, это может произойти:

  • Вы меняете jsp в 10:01
  • Tomcat видит и компилирует - все работает так, как ожидалось, но на скомпилированной странице есть отметка времени 10:06
  • Вы снова меняете jsp в 10:03
  • Tomcat видит измененную метку времени и сравнивает ее с меткой времени скомпилированной страницы: скомпилированная страница более новая (временная метка), поэтому компиляция не выполняется, и страница не отражает ваше обновление.
  • Вы расстраиваетесь, перезагружаете tomcat, который занимает 2 минуты.
  • Вы исправляете еще одну ошибку на странице, теперь ее отметьте 10:07
  • Tomcat подбирает его, компилирует его...

Кроме того, я считаю, что помню некоторую конфигурацию "Контекст", которая позволяет изменять поведение перевода jsp. Вы работаете над неизменным пакетом liferay/tomcat? То же самое происходит, когда вы работаете только на одной машине? То же самое происходит, когда вы берете новый пакет, распаковываете и повторяете?

Ответ 3

Используйте следующую строку в методе doView: ABCUtil.clearCache() а также может использовать <expiration-cache>0</expiration-cache> в дескрипторе развертывания портлета.

Ответ 4

Я нашел решение использовать MultiVMPoolUtil.clear();

Ответ 5

Одна из вещей, которая имеет тенденцию испортить перезагрузку JSP, - это разница в часовом поясе, которая вызывает эффект, подобный описанному Олафом Коком. Обычно вы можете обнаружить это в файлах журнала, так как он скажет что-то вроде "XXX был изменен в будущем".

Из-за этих временных отметок новый файл не будет правильно обнаружен и использован. Это можно легко решить, изменив часовой пояс в файле setenv.bat/setenv.sh Tomcat на соответствующее значение.

Ответ 6

Почему вы перезапускаете tomcat. Просто разверните портлет в каталог развертывания. Это быстрее. И если вы запустите Liferay из Eclipse IDE, я думаю, что изменения автоматически подбираются.

Ответ 7

Моя проблема заключалась в том, что развертывание не было исправлением изменений, внесенных в javascript-источник.

Создать файл с именем:

portal-ext.properties

В частности, в каталоге:

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

С контентом:

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

Другие проблемы, которые у меня были:

Краткосрочные файлы файловой системы Windows не могут размещать длинные имена файлов/путей JBoss в каталоге tmp.

Развертывания были кешируемыми файлами, которые я удалил

Созданы файлы кэширования, которые я удалил

Строки в моем файле 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