2012-06-19 3 views
1

Я думаю, что ответ на мой вопрос НЕТ. Но все же, мне интересно, возможно ли запустить gwt applicationaton в качестве интерфейса, например, на Apache HTTPD-сервере. Идея, что скомпилированный gwt является чистым javascript и не нуждается в бэкэнде Java (если мы не используем java-RPC)запустить GWT на сервере без java

ответ

3

Вам ничего не мешает. Код GWT разбивается на две части; серверный и клиентский код. Как вы говорите, клиентский код компилируется в чистый javascript, который может быть легко передан httpd.

Главное преимущество использования классов gwt на сервере заключается в том, что данные, которые вы запрашиваете через RPC, будут поступать в ваш клиентский код в виде java-объектов без какой-либо работы с вашей стороны. Но вы можете легко звонить на любую старую службу, используя класс RequestBuilder, или XMLHttpRequest, если вам нужно больше управления.

Edit: Существует один специальный бит конфигурации вы должны сделать, чтобы убедиться, что HTTPD хорошо работает с кодом на стороне клиента GWT:

<Files *.nocache.*> 
    ExpiresDefault "access" 
</Files> 
<Files *.cache.*> 
    ExpiresDefault "now plus 6 months" 
</Files> 

Это гарантирует, что при загрузке новой версии приложения браузеры пользователей будут загружать его автоматически, но также удостоверяются, что они не будут загружать все приложение каждый раз, когда они посещают ваш сайт. Очень полезно.

+0

Что же касается разложения кода, не требуется дополнительная параллельная логика Java? – abovesun

+2

Нет, разделение кода обрабатывается сгенерированным javascript. – checketts

+0

Разделение кода просто разбивает javascript на несколько файлов. Когда javascript решает, что для продолжения требуется разделенный файл, он загружает этот файл с помощью обычного HTTP-запроса, который может быть успешно передан httpd. – dslh

1

Это возможно и работает как шарм, если вы не пишете свой серверный компонент с помощью GWT.

Вот простой клиент gwt только htaccess password app (в настоящее время только немецкий) в качестве примера, который я закодировал для удовольствия.

2

Ваше мнение не так. Вы можете создать приложение gwt, предназначенное только для интерфейсов. Чтобы проверить, что вы можете сделать следующее

  1. Создание приложения GWT образца, который имеет только передний конец содержимого
  2. Compile и построить приложение
  3. Поместите папку содержимого сборки в вашем веб-каталог Apache.
    Ee: если вы создали проект под названием test-gwt, то содержимое JS и HTML находится в каталоге test-gwt, созданном в каталоге war.
  4. Доступ нового приложение через веб-браузер, как http://localhost/test-gwt

Надеется, что это поможет.

1

«Мне интересно, можно ли использовать gwt-приложение в качестве интерфейса, например, на сервере Apache HTTPD».

Ответ НЕТ. Интерфейс GWT UI не запускается ни на одном сервере. Он работает только в браузере с включенным Javascript.

Но если я игнорирую семантику языка вопроса и отвечая на суть его - ответ Да. Простите меня, но я думаю, что язык, который вы должны были написать, -

«возможно ли использовать интерфейс gwt applicationaton с сервера Apache HTTPD».

Просто разверните свою безсердечную войну с HTTPD (удалив папку WEB-INF).

Фактически, вы даже можете запросить запросы RequestBuilder для запроса статических потоков json из файлов, размещенных в папке «public» в модуле GWT. Где компилятор GWT копирует содержимое «общедоступной» папки в развернутый корень приложения.

Или вы можете использовать script-include для получения вашего запроса клиента GWT для динамического содержимого jsonp с другого сервера, который не создавал бы сервлета в вашем приложении. Я задокументировал технику сценария: http://h2g2java.blessedgeek.com/2011/06/gwt-requestbuilder-vs-rpc-vs-script.html.

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