2013-06-07 5 views
2

Я только что скачал GWT 2.5.1 SDK. Я побежал:GWT DevMode Перезапуск Jetty не выполняет изменения кода сервера

./webAppCreator -out/Главная/MyUser/TMP/dummygwt/com.dummygwt.OhHai

И создал проект GWT для меня. Я тогда переходите к /home/myUser/tmp/dummygwt/ и побежал:

муравей -buildfile build.xml DevMode

и запустил инструмент режима развития GWT и я нажал Launch Default Browser, который принес мой «OhHai» приложение в Firefox.

Затем я перешел на /home/myUser/tmp/dummygwt/src/com/dummygwt/server/GreetingServiceImpl.java и открыл его для редактирования. Я изменил возвращаемое значение по методу GreetingServiceImpl#greetServer, чтобы начать с "Bonjourno," вместо "Здравствуйте,". Таким образом, когда вы вводите свое имя и нажимаете кнопку «Отправить», всплывающее диалоговое окно будет читать «Bonjourno, ...». (. Я просто играл и с удовольствием с этим)

Я сохранил свои изменения в GreetingServiceImpl.java, а затем (внутри инструмента GWT Mode Dev), переходите на вкладку Jetty и нажал Restart Server и получил следующие предупреждения:

00: 14: 25,446 [WARN] Class Server 'com.google.gwt.dev.shell.jetty.JDBCUnloader' не может быть найден в веб-приложение, но был найден на системном пути к классам

00 : 14: 25.446 [WARN] Добавление файла записи пути к классам: /home/myUser/sandbox/dsi/workbench/gwt-sdk/gwt-2.5.1/gwt-dev.jar в путь к классу веб-приложений для этого сеанса Дополнительная информация: Файл: /home/myUser/sandbox/dsi/workbench/gwt-sdk/gwt-2.5.1/doc/helpInfo/webAppClassPath.html

я освежил свой браузер, ввести в новом имени и нажмите «Отправить». Я все еще вижу «Привет, ...» вместо «Bonjourno, ...». Я что-то делаю неправильно, или это ошибка с инструментом GWT Dev Mode? Заранее спасибо!

Примечание: Если я выйти из инструмента Dev Mode (и закрыть вкладку на браузере), а затем перезапустить Dev Mode, сервер на стороне изменения сделать вступили в силу. Но в документации GWT четко указано, что для «горячего развертывания» кода на стороне сервера все, что вам нужно сделать, это перезапустить сервер из инструмента ... не выйти из него и полностью перезапустить инструмент ...

+2

Вы проверили, установлен ли в вашем браузере плагин разработчика GWT, и URL-адрес включает параметр gwt.codesrv = ... ?? – futuretelematics

+0

Спасибо @futuretelematics (+1) - да URL, который открывается браузером, это 'http: //127.0.0.1: 8888/OhHai.html? Gwt.codesvr = 127.0.0.1: 9997' однако я ** не * * Обязательно ознакомьтесь с плагином разработчика GWT. Мне никогда не было предложено установить его, поэтому я решил, что он каким-то образом установлен автоматически. (1) Разве это не так, и если да, то как его установить? И (2) Почему плагин браузера не был там, чтобы предотвратить * серверный * код от горячего развертывания? Благодаря! – IAmYourFaja

+1

Привет! вам нужен плагин для браузера GWT для Mozilla, чтобы заставить браузер запросить сервер приземления GWT для получения последнего кода. Вы можете получить последний плагин браузера GWT по адресу https://gwt.googlesource.com/gwt-plugins/. Если вы используете другие браузеры, чем Mozilla, проще перейти на http://gwt.google.com/missing-plugin /MissingPlugin.html (щелкните ** плагины для других систем **) – futuretelematics

ответ

4

Я что вам просто нужно перекомпилировать GreetingServiceImpl.java после внесения изменений (вы не упомянули об этом после внесения изменений). Перезапуск сервера не будет полностью перерабатывать все для вас (но обычно ваша IDE будет).

Обратите внимание, что «горячее развертывание» - это не то же самое, что «hot-compile-deploy».

3

При запуске GWT DevMode он будет отслеживать только изменения в классах java клиента.

Изменить любой класс в любом пространстве имен клиентов (src/com/dummygwt/client или src/com/dummygwt/shared), перезагрузить страницу в браузере, и вы увидите изменения.

Тем не менее, при смене классов на стороне сервера вы должны скомпилировать их перед перезагрузкой причального сервера.

Измените класс на стороне сервера (например GreetingServiceImpl.java) с помощью любого текстового редактора, затем запустите ant javac в другом терминале, а GreetingServiceImpl.class будет обновлен, наконец, нажмите кнопку «Перезапустить сервер», и вы увидите изменения ,

Этот процесс намного проще, если вы редактируете свой класс в Eclipse, потому что по умолчанию Eclipse настроен на непрерывную компиляцию .java-файлов в .class, поэтому перезагрузки сервера достаточно.

+0

Спасибо! Это разрешило мне одну подобную проблему! – apanizo

0

имя - это простой кеш вызовов, и для применения настроек вам необходимо перезагрузить его. есть много способов перезагрузки, вам просто нужно забрать одну ведьму, которая вам легче. close/open is one, вы также можете очистить свой веб-браузер без выхода.

Смежные вопросы