Как включить горячую перезагрузку при запуске Errai на Tomcat?
Я разрабатываю проект с Errai 4, и, как обычно, я могу запустить "mvn gwt: run", и горячая перезагрузка просто работает, то есть я меняю модели или представления и мне нужно только обновить браузер.
Теперь мне это нужно, но я запускаю свое приложение Errai поверх Tomcat 7.
Проект с Tomcat похож на https://github.com/stbland/errai-tutorial-tomcat
Вопрос в том, как сделать так, чтобы горячая перезагрузка работала с Tomcat 7, когда я только вносил изменения во внешний интерфейс, используя только mvn gwt:run
или похожие.
Пошаговое окончательное решение:
Информация для решения этого:
- Как включить горячую перезагрузку при запуске Errai на Tomcat?
- Errai 4 работает на Tomcat (первый ответ)
Установить оригинальный проект
Для этого примера мы будем использовать errai-tutorial
- git clone https://github.com/Tlaloc-Es/errai-tutorial.git - одна ветвь - ветвь разработки
- CD Errai-учебник
- установить mvn
Запустить на Tomcat
- git clone https://github.com/Tlaloc-Es/errai-tutorial-tomcat.git - одна ветка - ветвь разработки
- cd errai-tutorial-tomcat
- mvn tomcat7: запустить войну
Прослушивание изменений
- CD Errai-учебник
- mvn gwt: компилировать
- mvn gwt: беги
Теперь вы можете открыть http://localhost:8080/errai-tutorial/ в вашем веб-браузере.
Для горячей перезагрузки вам нужно импортировать этот класс в ваш проект:
и назовите это в сокращении этого пути (SuperDevModeHelper.devModeOn()
) как это:
1 ответ
Взгляните на этот архетип 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
сделайте закладку в первый раз, затем используйте свой собственный ярлык. Мы используем эту стратегию, и она прекрасно работает.