Google Web Toolkit まとめ
Google Web Toolkit で Async にデータを受け取るところのメモ。
結構苦労したので。^^;
ここの通り、
File → Import → Existing Projects into Workspace
としてインポートする。
ここの通り、 mycompany/client の下に MyService.java を作って、
mycompany の下に server フォルダを作って、MyServiceImpl.java を作って
mycompany/client の下に MyService.java を作って、
MyApplication.java の中で
非同期にデータを受け取りたいところで、(なんかのアクション(onKeyUp とかで))
MyApplication.gwt.xml に
これで、Eclipse 上でテストして問題なければOK
あと、Tomcat に Deploy するには、
(Deployment と書いた方がヒット率上がるか?カタカナだと、ディプロイとか、デプロイとかか?)
(もし、一度でもコンパイルしてたら www フォルダを全部消してから、実行しないとダメ。上書きしてくれない。ので、かなりハマった。^^;)
webapps の中に MyApplication フォルダを作って、
webapps/MyApplication の中に www フォルダの中のファイルを MyApplication フォルダにコピーして、
webapps/MyApplication/WEB-INF の下に web.xml を作って
を書く
webapps/MyApplication/WEB-INF/classes の下に bin フォルダの中の com フォルダ以下を全部コピーして、
(classes/com/mycompany/server だけあればいい気がするけど)
webapps/MyApplication/WEB-INF/classes/com/google の下に、gwt-user.jar を展開した com/google の中身を全部コピーして、
(ホントは、ここに書かれてるとおり、webapps/MyApplication/WEB-INF/lib の中に、gwt-user.jar から javax フォルダを消して再圧縮した gwt-user.jar を置けばいいみたいなのだけど。)
これで、tomcat を再起動して、うまく使えればOK!
以上、なが~
結構苦労したので。^^;
ここの通り、
projectCreator -eclipse MyProject
applicationCreator -eclipse MyProject com.mycompany.client.MyApplicationとして、、Eclipse で
File → Import → Existing Projects into Workspace
としてインポートする。
ここの通り、 mycompany/client の下に MyService.java を作って、
package com.mycompany.client;のように書く。
import com.google.gwt.user.client.rpc.RemoteService;
public interface MyService extends RemoteService {
public String myMethod(String s);
}
mycompany の下に server フォルダを作って、MyServiceImpl.java を作って
package com.mycompany.server;のように書く。
import com.mycompany.client.MyService; // ここは↑で作った名前にする
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
public class MyServiceImpl extends RemoteServiceServlet implements MyService {
public String myMethod(String s) {
// ここで s に何か入れて返す
return s;
}
}
mycompany/client の下に MyService.java を作って、
package com.mycompany.client;のように書く。
import com.google.gwt.user.client.rpc.AsyncCallback;
interface MyServiceAsync {
public void myMethod(String s, AsyncCallback callback);
}
MyApplication.java の中で
import com.mycompany.client.MyServiceAsync;を書いて、
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
final MyServiceAsync tService = (MyServiceAsync) GWT.create(MyService.class);を書いて、
ServiceDefTarget target = (ServiceDefTarget) tService;と初期化して、
String strResponseURL = GWT.getModuleBaseURL();
strResponseURL += "/myMethod";
target.setServiceEntryPoint(strResponseURL);
非同期にデータを受け取りたいところで、(なんかのアクション(onKeyUp とかで))
tService.myMethod(fTextBox.getText(),と書く。
new AsyncCallback() {
public void onFailure(Throwable caught) {
// ここでエラー処理する
// acceptor.failed(caught);
}
public void onSuccess(Object result) {
// これでサーバ側の MyServiceImpl で返した文字列が受け取れる
// Object な result をキャストすればいい
String str = (String) result;
}
});
MyApplication.gwt.xml に
<servlet path="/com.mycompany.MyApplication/myMethod" class="com.mycompany.server.MyServiceImpl" />を追加する
これで、Eclipse 上でテストして問題なければOK
あと、Tomcat に Deploy するには、
(Deployment と書いた方がヒット率上がるか?カタカナだと、ディプロイとか、デプロイとかか?)
MyApplication-compile.cmdでコンパイルして javascript に変換して、
(もし、一度でもコンパイルしてたら www フォルダを全部消してから、実行しないとダメ。上書きしてくれない。ので、かなりハマった。^^;)
webapps の中に MyApplication フォルダを作って、
webapps/MyApplication の中に www フォルダの中のファイルを MyApplication フォルダにコピーして、
webapps/MyApplication/WEB-INF の下に web.xml を作って
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<servlet>
<servlet-name>MyService</servlet-name>
<servlet-class>com.mycompany.server.MyServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyService</servlet-name>
<url-pattern>/myMethod</url-pattern>
</servlet-mapping>
</web-app>
を書く
webapps/MyApplication/WEB-INF/classes の下に bin フォルダの中の com フォルダ以下を全部コピーして、
(classes/com/mycompany/server だけあればいい気がするけど)
webapps/MyApplication/WEB-INF/classes/com/google の下に、gwt-user.jar を展開した com/google の中身を全部コピーして、
(ホントは、ここに書かれてるとおり、webapps/MyApplication/WEB-INF/lib の中に、gwt-user.jar から javax フォルダを消して再圧縮した gwt-user.jar を置けばいいみたいなのだけど。)
これで、tomcat を再起動して、うまく使えればOK!
以上、なが~
人気 blog ランキングへ(←フリーソフトを作るモチベーションアップのために、ぜひ。)
| 固定リンク
「プログラミング」カテゴリの記事
- ListView の Height は WRAP_CONTENT を避けるべき(2015.12.23)
- プログラミングコンテストチャレンジブック(2010.09.27)
- 久しぶりに(2009.03.18)
- AVR-USB, hid-data(2008.11.24)
- AVR-USB、Tiny45 の internal RC oscillator で動作!(2008.11.08)
この記事へのコメントは終了しました。
コメント
Wesley Paz:determined dissipates Gothicize:downwards ...
投稿: | 2006.06.30 04:41
potentially?Croix,continually flora indication.liberty.sardonic seminarian
投稿: | 2006.06.30 21:17
russet meters excerpt Burnham claim flexibilities visually!drummer diffusing
投稿: | 2007.10.10 15:18