1

バックエンドとしてRESTサーバーがあり、一連のサービスを提供します。また、 アクセスに基本認証方式を使用します。

次に、GWTフロントエンドを作成する必要があるため、GWTフロントエンドからRESTバックエンドへのhttp呼び出しを実行する必要があります。

調査の結果、バックエンドへのhttpリクエストを処理するHttpBuilderを見つけましたが、クロスサイトリクエストを実行しようとすると面倒なようです。また、Safariブラウザに関連するいくつかの制限があります。

次に、このhttps://developers.google.com/web-toolkit/doc/latest/tutorial/Xsiteの記事で、「自分のサーバー上のプロキシ」について説明しているので、私が探していた解決策のようです。のために、しかし私はそれ以上の情報や例を見つけられませんでした。サーバー側のコードを作成してリモートサーバー(バックエンド)からデータをダウンロードできると書かれているので、サーバー側のコードにapacheクライアントのようなhttpクライアントを作成し、それ使用て一連のサービスを実装する必要があります。バックエンドにリクエストしますか?はいの場合、ユーザー認証とセッションを処理する方法は?そうでない場合は、私に光をください。

ありがとう

4

1 に答える 1

1
   it seem to be a pain when trying to perform cross-site requests,  

実際、サーブレット応答ヘッダーで設定できれば、GWTRequestBuilderからクロスサイトリクエストを行うことができます

Response.setHeader( "Access-Control-Allow-Origin"、 " http://yourrestserviceur.com/url ");

should I create a http client like the apache client on server-side code, and implement 
a set of services that use it to make request to the backend?

いいえ、必須ではありません。使用するRequestBuilder

RequestBuilderの例:

     RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);

        try {
          Request request = builder.sendRequest(null, new RequestCallback() {
            public void onError(Request request, Throwable exception) {
              displayError("Couldn't retrieve JSON");
            }

            public void onResponseReceived(Request request, Response response) {
              if (200 == response.getStatusCode()) {
                updateTable(asArrayOfStockData(response.getText()));
              } else {
                displayError("Couldn't retrieve JSON (" + response.getStatusText()
                    + ")");
              }
            }
          });
        } catch (RequestException e) {
          displayError("Couldn't retrieve JSON");
    }
于 2013-03-12T14:37:31.590 に答える