Archive for 2008年10月31日
GlassFishでCometアプリケーション
先日、MySQLカンファレンスにてGlassFishでCometのアプリケーションを
動作させましたが、サンプルのアプリケーションをアップします。
MySQLカンファレンスではGlassFishとMySQLとの連携をデモを行いましたが、
いきなりDB連携は難しいのでかんたんにCometを動かす方法について紹介します。
是非、ここで紹介するプログラムを改造したり参考にして色々と楽しいアプリケーションを
作成してください。
ここで紹介するアプリケーションはボタンを押下すると、サーバに接続する
全てのクライアントに対して同一の数値をサーバからPushし表示させる
Cometアプリケーションです。
1. まずはNetBeans6.1のGlassFIshバンドルをご入手ください。
2. NetBeans, GlassFishをインストールした後、GlassFish上でCometのアプリケーションを動作させる
設定を行ってください。
GlassFishの管理画面へはデフォルトで、http://[インストールマシンのIPアドレス]:4848/でアクセスします。
ログインユーザ名、パスワードはそれぞれ下記を入力しログインできます。
ユーザ名:admin
パスワード:adminadmin
ログインした後、管理画面中より「設定」→「HTTPサービス」→「HTTPリスナー」より
「http-listener-1」を選択し下記のように「追加プロパティ(1)」中に記載される、全ての項目を削除し、
「cometSupport」「true」を入力し保存してください。
これにより、GlassFishでCometのアプリケーションを動作させる事ができるようになります。
3. 次にNetBeansのCometサンプルアプリケーションのプロジェクトを入手してください。
ファイルを展開すると下記のファイルが含まれています。
> jar tvf sample-comet.jar 0 Sat Nov 01 13:40:48 JST 2008 META-INF/ 60 Sat Nov 01 13:40:48 JST 2008 META-INF/MANIFEST.MF 0 Sat Nov 01 13:21:02 JST 2008 sample-comet/ 0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/ 0 Sat Nov 01 13:21:04 JST 2008 sample-comet/build/web/ 189 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/button.html 446 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/count.html 438 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/index.html 513 Sat Nov 01 13:21:04 JST 2008 sample-comet/build/web/J2EE.dpf 0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/META-INF/ 23 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/META-INF/MANIFEST.MF 0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/ 0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/ 205 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/HiddenCometServlet$1.class 3473 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/HiddenCometServlet$CounterHandler.class 3476 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/classes/HiddenCometServlet.class 0 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/lib/ 596144 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/lib/grizzly-1.0.21.jar 513 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/sun-web.xml 710 Sat Nov 01 13:21:02 JST 2008 sample-comet/build/web/WEB-INF/web.xml 3081 Sat Nov 01 13:17:06 JST 2008 sample-comet/build.xml 0 Sat Nov 01 13:21:02 JST 2008 sample-comet/dist/ 607377 Sat Nov 01 13:21:02 JST 2008 sample-comet/dist/sample-comet.war 0 Sat Nov 01 13:04:06 JST 2008 sample-comet/nbproject/ 3538 Sat Nov 01 13:04:08 JST 2008 sample-comet/nbproject/ant-deploy.xml 43350 Sat Nov 01 13:17:06 JST 2008 sample-comet/nbproject/build-impl.xml 447 Sat Nov 01 13:17:06 JST 2008 sample-comet/nbproject/genfiles.properties 0 Sat Nov 01 13:04:06 JST 2008 sample-comet/nbproject/private/ 2409 Sat Nov 01 13:04:08 JST 2008 sample-comet/nbproject/private/private.properties 2354 Sat Nov 01 13:17:04 JST 2008 sample-comet/nbproject/project.properties 932 Sat Nov 01 13:17:04 JST 2008 sample-comet/nbproject/project.xml 0 Sat Nov 01 13:04:06 JST 2008 sample-comet/src/ 0 Sat Nov 01 13:04:06 JST 2008 sample-comet/src/conf/ 23 Sat Nov 01 13:04:06 JST 2008 sample-comet/src/conf/MANIFEST.MF 0 Sat Nov 01 13:10:40 JST 2008 sample-comet/src/java/ 3458 Sat Nov 01 13:22:10 JST 2008 sample-comet/src/java/HiddenCometServlet.java 0 Sat Nov 01 13:04:06 JST 2008 sample-comet/test/ 0 Sat Nov 01 13:07:00 JST 2008 sample-comet/web/ 189 Sat Nov 01 13:06:38 JST 2008 sample-comet/web/button.html 446 Sat Nov 01 13:07:04 JST 2008 sample-comet/web/count.html 438 Sat Nov 01 13:05:54 JST 2008 sample-comet/web/index.html 0 Sat Nov 01 13:04:06 JST 2008 sample-comet/web/WEB-INF/ 513 Sat Nov 01 13:04:08 JST 2008 sample-comet/web/WEB-INF/sun-web.xml 710 Sat Nov 01 13:11:50 JST 2008 sample-comet/web/WEB-INF/web.xml |
上記には、サンプルアプリケーションのソースコードと実行ファイルである
「sample-comet.war」、またCometの開発に必要なGrizzlyのAPI(grizzly-1.0.21.jar)
が含まれています。
※ 最新のgrizzly-1.0.x.jarは下記より入手可能です。
https://maven-repository.dev.java.net/nonav/repository/grizzly/jars/
4. 入手したNetBeansのプロジェクトファイルをご自身の環境にインポートします。
NetBeansのメニューより、「プロジェクトを開く」を選択し上記で入手、展開した
ディレクトリを指定してください。

5. プロジェクトを開くと恐らくGlassFishのインストールパスやJDKのインストールパスが
異なるため、いくつか設定を修正して頂く必要があるかと思いますが、それらの参照先を
変更して頂ければNetBeans上でCometのアプリケーションを開発できるようになると
思います。
MySQLユーザカンファレンス終了
本日、無事にMySQLユーザカンファレンスが終了致しました。
今年のMySQLのイベントは昨年に比べ大幅に参加者が多かったようです。
ご参加頂いた皆様、本当にありがとうございました。
今回の私はMySQLユーザカンファレンスで、GlassFish&MySQL&Comet
のセッションを頂きましたが、私が想定した以上に反響が大きく
多くの方にGlassFishの良さを実感して頂いたのではないかと思います。
今回、発表した内容は後に本ブログでアップデートしていきたいと
思っておりますが、細かい説明をする前に手っ取り早くCometを始めたい方に向けて
情報ポインタを紹介したいと思います。
まず、GlassFishでCometについて良くまとまっている資料として、
InfoQに掲載された「AjaxプログラマのためのJavaOne2008 -GrizzlyでComet!-」
があります。この資料は非常によくまとまった資料で、GlassFish&Comet
を最初に学ぶのにとても良い内容です。
それ以外で、今直ぐ試せるプログラムとして、「Introduction to Comet」の資料もあります。
こちらはGlassFishの次期バージョンであるv3をベースに作成されていますが
今すぐに試せるサンプルコードとしてご利用、御参照いただく事が可能です。
GlassFishv3のサンプルアプリで1点注意点があります。
それはパッケージ名が異なる事です。
GlassFish v2.*でCometのアプリケーションを作成する場合は
下記のクラス名にご注意ください。
GlassFish v3のパッケージ名(変更前)
import com.sun.grizzly.comet.CometContext; import com.sun.grizzly.comet.CometEngine; import com.sun.grizzly.comet.CometEvent; import com.sun.grizzly.comet.CometHandler; |
GlassFish v2.*のクラス名(変更後)
import com.sun.enterprise.web.connector.grizzly.comet.CometContext; import com.sun.enterprise.web.connector.grizzly.comet.CometEngine; import com.sun.enterprise.web.connector.grizzly.comet.CometEvent; import com.sun.enterprise.web.connector.grizzly.comet.CometHandler; |
上記のポイントさえ変更していただければ、そのままGlassFish&Cometの
サンプルアプリケーションを実行して頂く事が可能です。
是非、GlassFish&MySQL&Cometで新しいWebの世界へ進んで頂ければと
思っております。
PS.
サンのカメラ部として今回失格だったのが、あまりに
忙しすぎてあまり写真を撮れなかったのが唯一の残念です。(T_T)

