Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Нужна помощь с простейшим server-side GWT.


Автор: Dymytry 2.4.2010, 10:29
День добрый!

Помогите новичку в Java EE, пожалуйста.

Я разбираюсь с GWT. С клиентской частью вроде понял, сейчас копаюсь в серверной. Я хочу сделать что-то типа простейшего iFrame: в GWT вводить запрос на открытие некоей URL, которая выдает XML, а потом помещать ответ в окно, или разбирать его и помещать в таблицу. 

Есть и вторая задача: надо формировать интерфейс клиентской части в зависимости от выполнения запроса на сервер.

Есть особенность: сервер у меня - Лотус Домино (других на работе нет). Серверная часть - Java агент, который запускается просто через HTTP запрос: www.site.ru/database/agent?OpenAgent. Это агент и выдает данные в XML, которые мне надо использовать в моем GWT.

Для начала я в onModuleLoad написал следующий код: 
Код

            // Send request to server and catch any errors.
            RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, "http://www.rbc.ru");

            try {
              Request request = builder.sendRequest(null, new RequestCallback() {
                public void onError(Request request, Throwable exception) {
                  displayError("1 " + exception.getStackTrace());
                }

                public void onResponseReceived(Request request, Response response) {
                  if (200 == response.getStatusCode()) {
                    Window.alert(response.getHeadersAsString());
                  } else {
                    displayError("2 (" + response.getStatusText()
                        + ")");
                  }
                }
              });
            } catch (RequestException e) {
              displayError("3 " + e.getLocalizedMessage());
            }


Он выдает: Error: 3 The URL http://www.rbc.ru is invalid or violates the same-origin security restriction. То же пишет если я введу адрес своего агента в Лотусе.

Вот описание same-origin policy: The Same Origin Policy (SOP) is a browser security measure that restricts client-side JavaScript code from interacting with resources not originating from the same domain name, protocol and port. Однако мне непонятно, ведь я же могу открыть другой сайт простым javascript. Я могу получить результат Ajax запроса javascriptom от любого сайта. Почему же тогда я не могу сделать точно такой же запрос через GWT?

Что характерно, если скомпилировать приложение и открыть его html из Eclipse, то все работает. Может, просто надо тестировать это не в development mode? 

И еще вот что: мне надо зайти на часть сайта, которая защищена паролем. Есть два варианта: 1) я буду заходить снаружи 2) изнутри. Подскажите, как мне надо модифицировать приведенный выше код запроса чтобы это сделать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)