Горячая повторная публикация / развертывание статических проблем с файлами xhtml - PullRequest
2 голосов
/ 27 сентября 2011

Я замечаю множество проблем, связанных с «горячим развертыванием» страниц JSF в следующей среде:

  1. Eclipse Indigo (последняя версия)
  2. Tomcat 5.5
  3. JSF 1.2
  4. Обработчик представления Facelets

Я заметил, что если я изменю уже отредактированную страницу HTML (например, стиль CSS элемента), а затем повторноопубликуйте (через Eclipse или вручную скопировав xhtml-файл внутри Tomcat) эту страницу (поддерживая контейнер сервлета вверх), она не показывает текущие изменения.

Я также, напрасно, настраиваю следующую конфигурацию намое веб-приложение:

<Context 
    docBase="mywebapp" 
    path="/mywebapp" 
    reloadable="true" 
    cachingAllowed="false">

Последнее, о чем я думал, это то, что фаза восстановления-просмотра типичной обработки страницы JSF не проверяет, изменилось ли представление клиента (конечно, страница xhtml) по сравнению с последнимраз он был загружен в FacesContext.

Если так, как я могу форсировать создание нового объекта UIViewRoot для каждого отправленного запроса ??

Я сильно расстраиваюсь при перезапускесервер Tomcat для каждого изменения страниц jsf.

Большое спасибо за вашу поддержку.

1 Ответ

9 голосов
/ 28 октября 2011

Попробуйте добавить следующее в ваш файл конфигурации web.xml:

  <context-param>
      <param-name>facelets.DEVELOPMENT</param-name>
      <param-value>true</param-value>
  </context-param>
  <context-param>
      <param-name>facelets.REFRESH_PERIOD</param-name>
      <param-value>1</param-value>
  </context-param>

Он сообщает JSF повторно выполнить рендеринг Facelet.Посмотрите, как я поставил «1».В среде Prod вы всегда должны указывать «-1», чтобы отключить эту функцию, поскольку в среде Prod не нужно изменять фасеты.

Также необходимо убедиться, что вы можете использовать классы Hot Deploy и ресурсы JSP.,Вы можете найти это здесь:

http://ducquoc.wordpress.com/2010/11/06/eclipse-wtp-tomcat-hot-deploy/

...