Могу ли я настроить dev_appserver GAE для автоматической перезагрузки контекста при изменении файлов.class?

Я использую Google AppEngine со встроенным веб-сервером. Моя разработка идет простым путем: я делаю изменения в моих исходниках.java или.jsp и компилирую с помощью ant и чтобы увидеть изменения, я должен перезапустить сервер разработки.

Мне интересно, можно ли как-нибудь избежать этого последнего шага перезапуска сервера разработки - каким-то образом обновить контекст кэшированных классов моего веб-сервера. Параметры, предоставляемые Google на этом сервере разработки, весьма ограничены, и мне интересно, есть ли лучший способ.

Я бы хотел не использовать что-то вроде JRebel, которое я мог бы купить, но для этого простого проекта мне просто интересно, смогу ли я снять бремя перезапуска своего веб-сервера... в противном случае я буду жить с этим.

2 ответа

Решение

Я понял, что вы можете просто коснутьсяappengine-web.xml принудительно перезагрузить контекст сервера. Также загрузка страницы под /_ah/reloadwebapp перезагрузит контекст сервера - даже если он даст вам 404, он все равно перезагрузит контекст.

В режиме отладки JVM может выполнять некоторую горячую замену - я знаю, и Intellij IDEA делает это, я уверен, что другие отладчики в других IDE делают это тоже.

Запустите сервер приложений с флагом отладки (-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8000 например), затем подключите отладчик к серверу приложений.

Затем внесите изменение в источник, который не является сигнатурой метода или изменением поля класса. Перекомпилируйте, и вуаля, отладчик горячо поменял класс в отлаживаемом jvm!

Это действительно только работает хорошо. Но этого может быть достаточно.

Другие вопросы по тегам