REST Web サービスを作成し、JSNOP を使用して GWT でアクセスしようとしました。結果文字列を取得できませんでした。
クロムで応答がありました。Inspect Element-> Network->get->Headers をクリックして、クロムから取得した以下
Request URL:http://localhost:8080/RestWeb/webresources/generic/get?callback=__gwt_jsonp__.P0.onSuccess
Request Method:GET
Status Code:200 OK
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:JSESSIONID=f2976e5c04000cb9b46eb992128f
Host:localhost:8080
Referer:http://127.0.0.1:8888/Mygwtclientapplication.html?gwt.codesvr=127.0.0.1:9997
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11
Query String Parametersview URL encoded
callback:__gwt_jsonp__.P0.onSuccess
Response Headersview source
Content-Type:application/json
Date:Wed, 09 Jan 2013 12:00:40 GMT
Server:GlassFish Server Open Source Edition 3.1.2.2
Transfer-Encoding:chunked
X-Powered-By:Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.2.2 Java/Sun Microsystems Inc./1.6)
[Inspect Element] -> [Console] をクリックした後、次のエラーが発生しました
キャッチされていない SyntaxError: 予期しない識別子の取得: 1
Inspect Element -> Network -> get -> Response をクリックすると、次のデータが得られました
content from get method
以下に示す REST サービスのリソース クラス。
@Path("generic")
@WebService
public class GenericResource {
@Context
private UriInfo context;
@Context
private HttpServletResponse response;
private String content = "content";
/**
* Creates a new instance of GenericResource
*/
public GenericResource() {
}
/**
* Retrieves representation of an instance of
* com.mycompany.resource.GenericResource
*
* @return an instance of java.lang.String
*/
@GET
@Path("/get")
@Produces("application/json,text/plain")
public String getXml() {
System.out.println("GET");
//response.addHeader(content, content);
return this.content + " from get method";
}
以下は私のGWTエントリポイントクラスです
public class Mygwtclientapplication implements EntryPoint {
public void onModuleLoad() {
JsonpRequestBuilder jsonpRequestBuilder=new JsonpRequestBuilder();
System.out.println(jsonpRequestBuilder.getCallbackParam());
jsonpRequestBuilder.requestString("http://localhost:8080/RestWeb/webresources/generic/get", new AsyncCallback<String>() {
@Override
public void onFailure(Throwable caught) {
System.out.println(caught.getMessage());
}
@Override
public void onSuccess(String result) {
System.out.println(result);
}
});
}
}
実行後、Eclipseコンソールで次のようになりました
Timeout while calling http://localhost:8080/RestWeb/webresources/generic/get