Ускорение изменений кода в Eclipse Web Browser? - PullRequest
0 голосов
/ 29 июня 2011

Я разрабатываю приложение с использованием фреймворка Vaadin в Eclipse. Я использую сервлет Tomcat v6.0 и запускаю приложение в веб-браузере Eclipse. Однако проблема, с которой я столкнулся, заключается в том, что последние изменения отображаются в браузере при тестировании приложения.

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

Так что мой вопрос, если кто-то еще заметил эту проблему и есть идеи, как ее решить, если есть конфигурация, которую я могу сделать, или если я пропускаю шаг в перезапуске, который блокирует изменения от вступления в силу ..

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 30 июня 2011

В Vaadin большая часть кода выполняется на сервере и содержится в обычных файлах Java. Существует три уровня изменений ресурса / класса:

  1. Среда выполнения «горячая замена кода». При запуске Tomcat в режиме отладки некоторые изменения класса Java могут быть опубликованы без повторного развертывания веб-приложения. Однако, если Tomcat настроен на «автоматическую публикацию» (проверьте настройки сервера в Eclipse), повторное развертывание выполняется автоматически при изменении классов, что приводит к полной перезагрузке контекста и сериализации сеансов (см. # 2). Горячая замена кода может быть улучшена с помощью таких инструментов, как JRebel.

  2. Развертывание веб-приложения. По сути, это развертывание нового файла войны на сервере. Вызывает отмену развертывания предыдущей версии и развертывает новую версию всех классов и ресурсов. Иногда в рабочем каталоге серверов остаются некоторые ресурсы или классы не перезагружаются, и в этом случае требуется перезапуск сервера (# 3).

  3. Перезагрузка сервера. Это заставляет всю JVM перезагружаться, и все классы и веб-приложения также перезагружаются. Тем не менее, необходимо отдельно очистить рабочий каталог, чтобы убедиться, что все загружено.

В дополнение к этому есть клиентская часть Vaadin (по сути, JavaScript, скомпилированный с GWT), который Tomcat рассматривает как статический ресурс. Если вы изменяете код Java на стороне клиента, GWT используется для перекомпиляции JavaScript. Развертывание должно быть простым копированием файлов. Браузеры кэшируют сгенерированные файлы HTML / JS, но GWT включает механизм, позволяющий этого избежать.

Сначала вы должны попытаться изменить настройки сервера для автоматической публикации и посмотреть, поможет ли это. Также я заметил, что разные версии Tomcat ведут себя по-разному. Это прискорбно, но единственное, что вы можете сделать, это попытаться найти версии / настройки, которые вам подходят.

0 голосов
/ 03 июля 2011

Просто чтобы убедиться: вы добавили? RestartApplication в URL, чтобы принудительно перезапустить приложение при перезагрузке страницы, не так ли?

...