Мне наконец-то удалось запустить режим разработки с использованием OSGi, GWT и опционально затмения. Решение было на флаге -noserver
режима разработки GWT, он не знает об изменениях кода во время работы приложения, но его можно использовать для отладки скомпилированного кода и получения трассировок исключений.
Мне также удалось запустить оболочку разработки без Eclipse, но если вы не заинтересованы в этом решении, вы можете сразу перейти к разделу интеграции Eclipse.
Без Eclipse (только исключения, без отладки)
Вам необходимо знать следующую информацию:
- Где у вас источник (
$SRC
)
- Где у вас есть библиотеки GWT (
$GWT_PATH
), особенно gwt-user.jar
и gwt-dev.jar
.
- (Опционально) порт, с которого сервер HTTP OSGi обслуживает приложение (
$PORT
).
- URL запуска вашего приложения (
$URL
)
- Пакет, содержащий файл .gwt.xml для вашего приложения (
$PACKAGE
).
Тогда вам нужно запустить:
java -cp $SRC:$GWT_PATH/gwt-user.jar:$GWT_PATH/gwt-dev.jar \
com.google.gwt.dev.DevMode -noserver -port $PORT \
-startupUrl $URL $PACKAGE
например:.
java -cp src/:lib/gwt-2.0.3/gwt-user.jar:lib/gwt-2.0.3/gwt-dev.jar \
com.google.gwt.dev.DevMode -noserver -port 8080 \
-startupUrl httplocalgui.html es.warp.samples.httplocalgui
И, наконец, вам нужно развернуть ваше приложение как обычно, в моем примере я делаю это с pax-runner и pax-web, используя порт по умолчанию 8080.
С затмением
- Откройте конфигурацию отладки для вашего проекта
- Перейдите на вкладку Сервер и снимите флажок «Запускать встроенный сервер»
- Перейдите на вкладку «Атрибуты» и добавьте «
-port 8080
» (если 8080 - это порт, используемый вашим веб-контейнером). Я думаю, что этот аргумент без встроенного сервера используется только для создания URL, который генерирует режим разработки для вызова браузера (или что elipse использует для генерации URL, который вы можете скопировать и вставить в адресную строку браузера).
- Разверните ваше приложение.
- Доступ к нему из браузера с установленным расширением GWT (и не забудьте добавить
?gwt.codesvr=127.0.0.1:9997
)