Eclipse から GWT を起動する for Mac

GWT が Mac OS X にネイティブ対応 したので、早速導入。
基本的には projectCreator で Eclipse のプロジェクトを作って、 Terminal から applicationCreator でデバックしながら開発という感じになるんでしょうけど、これだと Eclipse の デバックモードが使えず、ちょっと不便。
ということで、 Eclipse から起動させる方法を模索。
最初は、googlipse というプラグインを使ってみたのだけど、–XstartOnFirstThread の引数がないと怒られる。
あいにく、googlipse は、 任意の引数を与えることができないらしい。
試行錯誤のあげく、起動構成から直接 GWTShell をたたくことで成功。
具体的には、
1. 実行→構成および実行を選択。
2. メインタブで任意のプロジェクト(GWTTest)を選択、メインクラスは com.google.gwt.dev.GWTShell を指定
3. 引数のタブで、 プログラムの引数に下記を追加

 -port 8888 -out "www"   jp.example.GWTTest/GWTTest.html

4. VM引数に下記を追加

-XstartOnFirstThread

5. クラスパスのタブで、拡張をクリック、プロジェクトのディレクトリである src と bin をクラスパスに追加
これで実行をクリックすると、 Eclipse から GWT の hosted mode が立ち上がります!
さあ、ばりばりやるぞー

広告

Google Web Toolkit (GWT) を Mac OS X で開発する

記事は少し前に見つけていたのですが、なかなか時間が無く、やっと試すことができたのでまとめてみます。
Java で Ajax の開発ができる!という Google Web Toolkit (GWT)が大変注目を集めています。
が、開発環境としてサポートしているのが、Linux (GTK+ 2.2.1+) と、 Windows XP/2000 のみということなので、 Mac OS X ユーザーは非常につらいところ。
この開発環境を何とか Mac OS X で動かすことができないかと, いろいろ調べてみたところ, Google Code に Issue #7480804 – Mac OS X support for Google Web Toolkit というのを発見.
そこに, Using GWT on Mac OS X: How To Guide という Google Group の記事があったので試してみました.

  • まず, http://www.eclipse.org/swt/ から, Mac OS X の SWT をダウンロードし, ‾/Library/Java/swt 等へ展開.
  • Linux 版の GWT をダウンロードし展開.
  • GWT を展開したディレクトリへ移動し, 下記のコマンドを実行. GWT プロジェクトを作成.
    % ./projectCreator -eclipse GWTTest -out ‾/Documents/workspace/GWTTest
    

    こうすることにより, Eclipse のプロジェクトが作成されます. プロジェクト名と, workspace のパスは, 環境に応じて書き変えてください.

  • 次に, 下記コマンドで必要なファイルを生成.
    % ./applicationCreator -eclipse GWTTest -out ‾/Documents/workspace/GWTTest jp.example.gwttest.client.GWTExample
    

    GWT アプリケーションは, 必ず client パッケージを指定する必要があるようです.

  • 生成したプロジェクトのディレクトリへ移動すると, GWTExample-shell や GWTExample-compile といった shell スクリプトが生成されていると思うので, GWTExample-shell を下記のように編集.
    #!/bin/bash
    APPDIR=`dirname $0`;
    java ¥
    -XstartOnFirstThread ¥
    -cp "$APPDIR/src:$APPDIR/bin:/foo/bar/gwt-linux-1.1.10/gwt-user.jar:/foo/bar/swt/swt.jar:/foo/bar/gwt-linux-1.1.10/gwt-dev-linux.jar" ¥
    -Djava.library.path=/foo/bar/swt ¥
    com.google.gwt.dev.GWTShell -out "$APPDIR/www" "$@" jp.example.gwttest.GWTExample/GWTExample.html;
    

    具体的には, 次のオプションを追加.
    -Djava.library.path には, SWT を展開したパスを指定して下さい.

    -XstartOnFirstThread
    -Djava.library.path=/foo/bar/swt
    

    クラスパスの gwt-dev-linux.jar の前に, swt.jar のクラスパスを追加しました.

      編集した GWTExample-shell を Terminal 等から実行すると, GWT アプリケーションがホステッドモードで立ちあがります.

%E3%83%92%E3%82%9A%E3%82%AF%E3%83%81%E3%83%A3%201.png
しかし, GWTExample-compile でWebモードへコンパイルしないと, GWTアプリケーションが動作しないようです..(苦笑)
Compile/Browse ボタンも動作しないようです..
つまり, JavaScript へコンパイルしないと動作しない模様..
ホステッドモードで debug 可能なのが GWT の良さでもあるので, 魅力半減..
でも, いちいちブラウザを立ちあげて確認するよりも, 少しは手間が省けるので, Mac OS X が正式にサポートされるまでの繋ぎとして使うのにはこれで我慢ですね..

Java で Ajax が書ける!

Google Web Toolkit
これすごい。
Java 使いにとっては朗報。
いまのところ、実行環境が Windows と Linux のみのサポートだそうで、 Mac 使いにはちょっとツライ。
でも、しつこく試してみたところ、実行環境は動かないけど、 Java のソースコードから、 HTML と JavaScript のコードは生成出来る模様。
このあたりは Java で動いているみたいです。
もちろん、それをブラウザで開けばちゃんと動きます。
試してないけど、 Debugging in Hosted Mode なんてものもあるので、 Eclipse 使えば動くのかな?
使い方覚えれば、かなり使えるかなと。
いま使っている、 Struts ベースのフレームワークと、どう連携させようか・・・。
落ち着いたらまた書きます(汗)

インクリメンタルサーチ

Ajax で作ってみました。
フォームにワードを入力すると、1文字入力するごとに、下のSELECT BOXに、データベースから検索されたデータが一覧表示されるやつです。
店舗を一覧から選択して、データ入力するという機能を作っていたのですが、店舗が数百件とかになると、プルダウンでは、探すのが大変だから何とかしろーということでやってみました。

暫定版Ajax用ライブラリ

http://jsgt.org/mt/archives/01/000409.html
ここのライブラリを使わせていただき、SpringFramework + Struts + JSTL + XML でやってます。
XMLから、Java オブジェクトへの変換は、Relaxer を使いました。
DBは、PostgreSQLを使ってます。
入門Ajax の 204ページにある onkeyup のサンプルと、 208ページにある onchange のサンプルの応用版です。
テキストフィールドに文字を入力する度に、 onkeyup で入力を検知、入力した文字列を POST して、 Struts の ActionForm を通して受信、XMLで検索結果を返します。
それを、JavaScriptを使って処理し、SELECT BOX へ一覧表示させます。
まだまだ、すぱげってぃそーす なので、まだ公開できるようなものではないですが、コンポーネント化して、そのうち公開しようと思ってます。
作ってみた感じ、意外に短いコードで実装できてびっくり。
今まで、検索してSELECT BOX へ表示というのをやるには、複数ページに分割したりするので、Java で実装しようと思うと(実装の仕方にもよりますが)結構な量のコードを書くことになり、なかなか大変でした。
でも、これならすっきり書けるし、移植性も良さそうです。
サンプルも、そのうち作ろうかと思ってますんで^^;
正月明けまでに仕上げなきゃいけない仕事があって、ちょっと余裕が・・・(汗)
もし、すぱげってぃそーすでもいいから、どんな風になってるかみてみたいという方がいらっしゃいましたら、コメントいただければ公開します^^;

Google Analytics

Ajax つかいまくり。
というか、コードを入れてから、24時間は経ったのに、PVがいまだに0とはどういうことねん。。(苦笑)
問い合わせフォーム、Server Error ってなってるし。。。
Googleのエンジニアさん、大変そうだなぁ。。。(同情)

Ajax

最近、にわかに脚光を浴びている Ajax。
Google Maps とかみて、すげーって思ってたけど、まじめにかなり使えそう。
個人的には、Flashより性に合ってるかも(謎
BiGDesire で使えたらいいものできそうな気はするが、もう遅い。。がんばらねば。
Google Analytic がサービス開始された模様。
さっきまでずっとつながらなかったのだけど、やっとつながったので試してみます。
infoseek アクセス解析ともおさらばかなぁ。
アクセス解析もいろいろ自前でつくったけど、みんな中途半端だったなぁ(じばく)