RestyGWTを使う、その2
RestyGWTを使う、その1の続きである。
RestyGWTライブラリを依存に入れる。
RestyGWTを追加する。
dependencies {
compile group: 'com.google.gwt', name: 'gwt-dev', version: '2.8.2'
compile group: 'com.google.gwt', name: 'gwt-user', version: '2.8.2'
compile group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.1.1'
compile group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet', version: '2.29'
compile group: 'org.glassfish.jersey.media', name: 'jersey-media-json-jackson', version: '2.29'
compile group: 'com.fasterxml.jackson.jaxrs', name: 'jackson-jaxrs-json-provider', version: '2.9.9'
compile group: 'org.glassfish.jersey.inject', name: 'jersey-hk2', version: '2.29'
// 追加
compile group: 'org.fusesource.restygwt', name: 'restygwt', version: '2.2.4'
}
gwt.xmlに以下を追加する。
<inherits name="org.fusesource.restygwt.RestyGWT"/>
サービスクライアントを作成する
このサービスを呼び出すクライアントを作成する。
package sample.client;
import java.util.*;
import javax.ws.rs.*;
import org.fusesource.restygwt.client.*;
import sample.shared.*;
@Path("/api/thing")
public interface ThingClient extends RestService {
@GET
public void getThings(MethodCallback<List<Thing>> callback);
@GET
@Path("/{id}")
public void getThing(@PathParam("id") String id, MethodCallback<Thing> callback);
}
クライアントコードを変更する
元からあるsample.client.Sampleにコードを追加する。ボタンが押されたらREST-APIを呼び出すように改造する。
以下を追加
public class Sample implements EntryPoint {
.....
.....
.....
static ThingClient client = GWT.create(ThingClient.class);
private void testit() {
MethodCallback<List<Thing>> callback = new MethodCallback<List<Thing>>() {
@Override
public void onFailure(Method method, Throwable caught) {
}
@Override
public void onSuccess(Method method, List<Thing> result) {
GWT.log("" + result);
}
};
Defaults.setServiceRoot(GWT.getHostPageBaseURL());
client.getThings(callback);
}
}
ボタンクリック時に、元のGWT-RPC呼び出しとともにRESTを呼び出してみる。
/**
* Fired when the user clicks on the sendButton.
*/
public void onClick(ClickEvent event) {
testit(); // これを追加
sendNameToServer();
}
ブラウザ開発ツールのコンソールを見てみると、たしかにオブジェクトが3つ取得されている。
ディスカッション
コメント一覧
まだ、コメントがありません