Как включить горячую перезагрузку при запуске Errai на Tomcat? - PullRequest
1 голос
/ 09 апреля 2019

Я занимаюсь разработкой проекта с Errai 4, и, как обычно, я могу запустить «mvn gwt: run», и горячая перезагрузка просто работает, то есть я меняю модели или представления и мне нужно только обновить браузер.

Теперь мне это нужно, но я запускаю свое приложение Errai поверх Tomcat 7.

Проект с Tomcat похож на https://github.com/stbland/errai-tutorial-tomcat

Вопрос в том, как заставить работать горячую перезагрузку с Tomcat 7когда я только делаю изменения во внешнем интерфейсе, используя только mvn gwt:run или подобное.

Пошаговое окончательное решение:

Информация для решения этой проблемы:

Установить оригинальный проект

В этом примере мы будем использовать errai-tutorial

Запуск наTomcat

Изменения прослушивания

  • CD-errai-tutorial
  • mvn gwt: compile
  • mvn gwt: run

Теперь вы можете открыть http://localhost:8080/errai-tutorial/ в своем веб-браузере

Для горячей перезагрузки вам потребуется импортировать этот класс в ваш проект:

и назовите его таким образом (SuperDevModeHelper.devModeOn()), как это:

1 Ответ

3 голосов
/ 10 апреля 2019

Взгляните на этот архетип https://github.com/tbroyer/gwt-maven-archetypes/

Модульное веб-приложение настраивает tomcat и gwt для совместной работы.Горячая перезагрузка работает, потому что gwt: codeserver генерирует специальный загрузчик (your-app.nocache.js), который немедленно запускает компиляцию gwt и перезагружается после завершения.Чтобы это работало, вам нужно загрузить сгенерированный gwt: codeserver launcherDir в контекст tomcat, это делается в этом архетипе с использованием context.xml .

В качестве альтернативы, вы можете добавить компиляцию-вставить в собственное приложение, чтобы вы могли запустить компиляцию с помощью ярлыка.Это все, что вам нужно для запуска компиляции ( DevModeHelper ).Просто добавьте обработчик ярлыков в точку входа вашего приложения и вызовите devModeOn().Если вы не хотите добавлять его в окончательную компиляцию, устанавливайте прослушиватель событий, только если System.getProperty("superdevmode").equals("on") равен true.В этом случае используйте классическую закладку Dev Mode On в первый раз, а затем используйте свой собственный ярлык.Мы используем эту стратегию, и она прекрасно работает.

...