Решил поделиться с широкой общественностью каким образом можно создать полноценное GWT приложение с помощью NetBeans, а так же каким образом развернуть его на сервере приложений JBoss. К сожалению в сети я не нашел полного описания этого процесса(есть статьи отдельно GWT, отдельно про GWT-EXT и отдельно про JBoss), поэтому и решил собрать всё в одну кучу. Надеюсь кому-то этот гайд пригодится и послужит отправной точкой. Итак приступим.
Осторожно! Много больших скриншотов
Нам понадобятся:
—
Sun JDK v1.6
—
JBoss Application Server v4.2.3 GA
—
NetBeans v6.5.1
—
Google Web Toolkit 1.6.4
—
GWT-Ext v2.0.5
—
ExtJS v2.0.2 или
extjs.com/products/extjs/download.php
Пара моментов
— В своём руководстве я буду использовать папку
C:/Java. В неё я буду помещать все необходимые вещи. Советую вам поступать так же.
— Помните, что при установке переменных среды Windows XP лучше перезагрузить
Шаг 1. Установка Java
Как инсталить джаву я рассказывать пожалуй не буду. Тут всё уже разжёвано и пережевано много раз. Скажу только, что полной работоспособности нужно, чтобы в переменных среды была прописана переменная
JAVA_HOME.
Шаг 2. Распаковка всех архивов и переменные среды
Архивы нужно распаковать следующим образом. Не забудьте прописать переменные среды.
| Sun JDK v1.6 |
C:\Java\Jdk |
JAVA_HOME |
| JBoss Application Server v4.2.3 GA |
C:\Java\JBoss |
JBOSS_HOME |
| Google Web Toolkit 1.6.4 |
C:\Java\GWT |
GWT_HOME |
| GWT-Ext v2.0.5 |
C:\Java\GXT |
GXT_HOME |
Шаг 3. Запуск JBoss
После распаковки идем в JBoss/bin и запускаем run.bat. Если всё прошло успешно, то мы должны увидеть следующее:
Шаг 4. NetBeans и установка плагина GWT4NB
После установки NetBeans нужно зайти в Tools -> Plugins. Там во вкладке выбрать плагин GWT4NB. После инсталляции плагина должно получиться следующее:
Шаг 5. Создание веб- проекта
Шаг 6. Пробная публикация проекта
Нажимаем правой клавишей на проекте и выбираем пункт Deploy. Так как JBoss у нас уже запущен, то NetBeans скомпилирует проект и самостоятельно положит на сервер. Должно получиться вот так:

Теперь проект доступен по следующему адресу:
http://localhost:8080/SampleGwtApplication. Там будет кнопка с надписью.
Шаг 7. Учим клиентскую часть дергать серверный код. AJAX в действии
Для этого нам нужно создать сервис. Тыкаем правой клавишей по проекту.
После того как NetBeans сгенерит необходимые классы идем в MainModuleEntryPoint.java и там в функцию onModuleLoad пишем следующее:

Снова публикуем проект. После компиляции на странице проекта (
http://localhost:8080/SampleGwtApplication) появится текстовое поле и кнопка. Кнопка будет отправлять полноценный аяксовый запрос к серверу. Подробности об устройстве сервисов и как они работают с клиентом читать в интернетах.
Шаг 8. Прикручиваем GWT-Ext
Первое что необходимо сделать – это подключить к библиотеками проекта GWT-Ext. Для этого тыкаем правой клавишей мыши на библиотеках проекта и выбираем «Add Library..».

…создаем новую библиотеку в NetBeans

Указываем саму библиотеку, которая у нас лежит
C:\Java\GXT\gwtext.jar

…и документацию к ней

Теперь в файле
MainModule.gwt.xml добавляем одну строку:

Теперь в коде MainEntryPoint.java мы можем использовать GWT-Ext контролы. Однако этого недостаточно чтобы всё работало. Еще необходимо положить в проект клиентские скрипты ExtJS. Для этого нужно создать в папке web папки scripts, css и images. Как здесь:

…из архива ext-2.0.2.zip в папку scripts нужно положить adapter и ext-all.js

… в папку css нужно положить содержимое ext-2.0.2.zip/resources/css

… в папку images нужно положить содержимое ext-2.0.2.zip/resources/images

…теперь подключаем эти скрипты в странице. Прописываем в файле welcomeGWT.html вот такие штуки…

Осталась самая малость. В коде
MainModuleEntryPoint.java пишем создание GWT-Ext панели и кнопочки для неё. Точно так же можно использовать и другие контролы пэкеджа
com.gwtext.client.widgets

Снова публикуем проект и видим результат

Вот собственно и всё. Спасибо за внимание.
P.S. Простите за неловкость слога и большие картинки. Время 23.41, а я еще на работе сижу. Для вас стараюсь.
комментарии (24)
За статью спасибо. надо попробовать будет
сейчас думаю еще раз попробовать завести это всё, но для руления gwt использовать ant, благо это maven умеет.
Потому что gwt-ext поддерживает только 1.5.
не согласен. Просто надо перезапустить приложение, в котором вам нужна новая переменная среды, так как переменные среды сохраняются для процесса при его запуске.
gwt-ext.com/forum/viewtopic.php?f=13&t=3465&st=0&sk=t&sd=a
Вкратце, они прекращают разработку новых компонентов, и предлагают пользователям переходить на SmartGWT.
Кому-нибудь про это известно? И работают ли они над своим проектом?
Т.е. обычный php/mysql-хостинг + gwt