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のアプリケーションを開発できるようになると

  思います。


2008年10月31日 at 10:45 午後 2件のコメント

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)








2008年10月31日 at 10:56 午前


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2008年10月
 12345
6789101112
13141516171819
20212223242526
2728293031  

カテゴリー

Twitter

clustermap

ブログ統計情報

  • 1,263,629 hits

RSSフィード

アーカイブ