JSOPRequestBuilderを使用してGWTからRestfulWSを呼び出そうとしています。リンクで報告された同様の問題があります
しかし、私は解決策を理解できませんでした。早めに助けてください。
サーバーからのJAX-WSリソースコードスニペット
@GET
@Produces(MediaType.APPLICATION_JSON)
public DealerAddress getDealerAddress(@QueryParam("dealerId") String sDealerId) {
DealerAddress dlrAd = new DealerAddress("test", "test", "test", "test", 10, new Date(), new Date());
return dlrAd;
}
JerseyはDealerAddressのJSONオブジェクトを返します。
これで、残りのURL "https://127.0.0.1:8181/application/rest/OrderManagementResource?alt=json-in-script&dealerId=DLR1"は、ブラウザーでリクエストを試みたときに完全に正常に機能します。
GWTのRequestBuilderアプローチでも機能しますが、JSONPRequestBuilderアプローチでは機能しません。
JSONPRequestBuilderを使用してGWTからWSを呼び出すコードスニペット
JsonpRequestBuilder jsonPReqBuilder = new JsonpRequestBuilder();
jsonPReqBuilder.setTimeout(100000);
jsonPReqBuilder.setCallbackParam("callback");
jsonPReqBuilder.requestObject("https://127.0.0.1:8181/application/rest/OrderManagementResource?alt=json-in-script&dealerId=DLR1" , new AsyncCallback<DealerAddressJSON>() {
@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub
caught.printStackTrace();
Window.alert("Inside error"+caught.getLocalizedMessage());
}
@Override
public void onSuccess(DealerAddressJSON result) {
// TODO Auto-generated method stub
Window.alert("Inside success"+result);
}
});
一方、DealerAddressJSONはJavaScriptObject型クラスです。
JAX Restリソースが呼び出され、サーバーから戻ると言っていることがわかりました。
また、Firebugでは、応答はブラウザに表示されますが、「不明なトークン:」という例外で失敗することがわかりました。最後に、常にタイムアウト例外が発生します。JAX-RSリソースからJSONを返す方法がサーバーで問題なのか、JSONPRequestBuilder呼び出しプロシージャが問題なのか、大きな疑問があります。一部のリンクがこの問題について説明しているコールバックの変更を理解できませんでした。
親切に私を助けてください。