GWTでJSONPしたいのですよ。
いつからSDKに入っているかよくわからないのですが、2.0にはもうJsonpRequestBuilderという便利なクラスが導入されていました。
String url = "http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full" + "?alt=json-in-script"; JsonpRequestBuilder jsonp = new JsonpRequestBuilder(); jsonp.requestObject(url, new AsyncCallback<Feed>() { public void onFailure(Throwable throwable) { Log.severe("Error: " + throwable); } public void onSuccess(Feed feed) { JsArray<Entry> entries = feed.getEntries(); for (int i = 0; i < entries.length(); i++) { Entry entry = entries.get(i); Log.info(entry.getTitle() + " (" + entry.getWhere() + "): " + entry.getStartTime() + " -> " + entry.getEndTime()); } } }); This example uses these overlay types: class Entry extends JavaScriptObject { protected Entry() {} public final native String getTitle() /*-{ return this.title.$t; }-*/; public final native String getWhere() /*-{ return this.gd$where[0].valueString; }-*/; public final native String getStartTime() /*-{ return this.gd$when ? this.gd$when[0].startTime : null; }-*/; public final native String getEndTime() /*-{ return this.gd$when ? this.gd$when[0].endTime : null; }-*/; } class Feed extends JavaScriptObject { protected Feed() {} public final native JsArray<Entry> getEntries() /*-{ return this.feed.entry; }-*/; }
基本的にはサンプルコードの通りでした。
JSONPのサーバー側の実装の仕方は公式ドキュメントにありました。-> http://code.google.com/intl/ja/webtoolkit/doc/latest/tutorial/Xsite.html
そもそもJavascriptObjectって何って?人はこちらへ
簡単に言うとGWT側からJavascriptのオブジェクトにアクセスするためのクラスです。
JSのライブラリをGWTで使いたいとなると使うことがありますが、込み入ったことをしない限りなかなか使わないクラスですね。