ポート 8080 で実行されている JAX-RS/Jersey/Glassfish サービスと通信する標準 gwt ポート 8888 でデバッグする gwt アプリがあります。
これはgwtコードです:
StringBuffer postData = new StringBuffer();
postData.append(URL.encode("username")).append("=").append(URL.encode(user));
postData.append("&");
postData.append(URL.encode("password")).append("=").append(URL.encode(password));
RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, "http://localhost:8888/gestdoc/resources/data/login");
builder.setHeader("Content-type", "application/x-www-form-urlencoded");
try {
builder.sendRequest(postData.toString(), new RequestCallback() {
public void onResponseReceived(Request request, Response response)
{
String responseText = response.getText();
String headers= response.getHeadersAsString();
String statusText= response.getStatusText();
int statusCode= response.getStatusCode();
String toString= response.toString();
System.out.println("responseText: "+responseText);
System.out.println("headers: "+headers);
System.out.println("statusTest: "+statusText);
System.out.println("statusCode: "+statusCode);
System.out.println("toString: "+toString);
GestoreUtenze.this.cddoc.loginResponse(true);
}
public void onError(Request request, Throwable exception) {
// exception handling
}
});
} catch (RequestException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
これは出力です:
responseText:
headers:
statusTest:
statusCode: 0
toString: com.google.gwt.http.client.Request$1@6c1a82
私はJerseyサービスをテストしたJavaバッチクライアントを持っていますが、問題ありません。
私は多くの投稿を読みましたが、SAME ORIGIN POLICY の問題があると思います。
私は多くの解決策を試しました:
- ブラウザを実行して、gwt アプリを非同一生成元ポリシー (chrome および firefox) でデバッグします。
- gwt 構成ファイルに行を追加します
- 成功せずにプロキシを設定しようとしました。どのようにできるのか?
この問題を解決するのを手伝ってくれませんか?