セミナーで使用したSailFinのサンプルアプリケーションの公開(クリック2ダイアル)
2008年6月19日 at 8:05 午前
先日のホットトピックセミナーで発表した際に
使用したSailFinのデモアプリケーションを、
当日参加して頂いた皆様からのご要望にお応えして
ソースコード付きで公開することにしました。
アプリケーションとソースコードを下記のURLに置きました。
アプリケーションの動作方法も以降で紹介しますので、
御興味のある方は是非入手頂き遊んでみてください。
●ソースコード付きサンプル(NetBeans 6.1プロジェクト)
Click2Dial-Source.jar:ソースコード付きアーカイブ
Click2Dial.zip: ZIP版ソースコード付きアーカイブ
●発表資料
発表資料の入手はこちらから
実行前の事前準備(必要なファイルの取得):
●SIP Servletコンテナ : SailFin
SailFinの最新ビルドであるMileStone 4を下記のより
入手して、インストールしてください。
https://sailfin.dev.java.net/downloads/v1-MS4.html
●ソースコード付きサンプル(NetBeans 6.1プロジェクト)
Click2Dial-Source.jar
●SIP Client (SIP対応のソフトウェアフォン)
サンプルアプリケーションを動作させる為には
SIP Clientが必要になります。
フリーのSIP Clientとして下記のようなソフトウェアが
ありますので、それぞれ事前に入手しインストールしておいてください。
1. X-Lite(お勧め)
2. SIP Communicator
SailFinのインストールとJavaDB,SailFinの起動方法の紹介
SailFinのインストール方法
# java -Xmx256m -jar sailfin-installer-v1-b24d-darwin.jar -console
…. (中略)
….. (ライセンスの同意確認)
or based on this library.? If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so.? If you do not wish to do so, delete this
exception statement from your version.
Accept or Decline? [A,D,a,d] A
…. (中略)
sailfin/updatecenter/LICENSE.txt
sailfin/updatecenter/README
sailfin/updatecenter/registry/SYSTEM/local.xml
installation complete
# chmod 755 sailfin/lib/ant/bin/*
# cd sailfin
# ./lib/ant/bin/ant -f setup.xml
…. (中略)
[exec] Admin login information for host [localhost] and port
[4848] is being overwritten with credentials provided. This is
because the –savelogin option was used during create-domain
command.
[exec] Login information relevant to admin user name [admin]
for this domain [domain1] stored at [/SAILFIN-INSTALL/.asadminpass]
successfully.
[exec] Make sure that this file remains protected. Information
stored in this file will be used by asadmin commands to manage
this domain.
[delete] Deleting: /Applications/NetBeans/sailfin/passfile
BUILD SUCCESSFUL
Total time: 26 seconds
|
SailFinに付属するJavaDBの起動
# asadmin start-database
Database started in Network Server mode on host 0.0.0.0 and port 1527.
…. (中略)
Starting database in the background.
Log redirected to /Applications/NetBeans/sailfin/databases/derby.log.
Command start-database executed successfully.
|
SailFinの起動
# asadmin start-domain domain1
Starting Domain domain1, please wait.
…. (中略)
Domain listens on at least following ports for connections:
[8080 8181 4848 3700 3820 3920 8686 ].
Domain does not support application server clusters and other
standalone instances.
|
アプリケーションの動作
1. ソースコード付きサンプルの展開
入手したClick2Dial-Source.jarを展開します。
展開するとNetBeansのプロジェクトのディレクトリが
作成されます。
# jar xvf Click2Dial-Source.jar
0 Thu Jun 19 19:49:02 JST 2008 META-INF/
60 Thu Jun 19 19:49:02 JST 2008 META-INF/MANIFEST.MF
0 Thu Jun 12 12:29:06 JST 2008 Click2Dial/
0 Thu Jun 12 12:29:04 JST 2008 Click2Dial/build/
0 Thu Jun 19 18:28:52 JST 2008 Click2Dial/build/web/
2106 Thu Jun 19 18:28:52 JST 2008 Click2Dial/build/web/Login.jsp
0 Thu Jun 12 12:29:04 JST 2008 Click2Dial/build/web/manage/
…….(中略)
0 Thu Jun 12 12:29:06 JST 2008 Click2Dial/dist/
7097035 Thu Jun 19 18:28:54 JST 2008 Click2Dial/dist/Click2Dial.war
…….(後略)
|
2. アプリケーションの配備
まず、アプリケーションを配備する前に、
アプリケーションサーバ上にJDBCのリソースを作成します。
※注意: JDBCのリソースを事前に作成しないと正常に動作しません。
# asadmin create-jdbc-resource –connectionpoolid DerbyPool jdbc/APP_ApacheDerby
Command create-jdbc-resource executed successfully.
|
次に、Click2Dial-Source.jarを展開すると展開したディレクトリ配下に、
distディレクトリが存在し、この中にClick2Dial.warファイルが存在しますので
確認してください。
# pwd
/NetBeansProjects/Click2Dial/dist
# ls
Click2Dial.war
|
このファイルをコピーしてアプリケーションを配備します。
ドメインディレクトリ配下の「autodeploy」ディレクトリの下に
ファイルをコピーしてください。
※ ご安心ください。アプリケーション配備時にデータベースの
テーブルを自動的に作成するようにしていますので、これだけで
動くようになります。
アプリケーションの配備
# cp Click2Dial.war /SAILFIN_INSTALL/sailfin/domains/domain1/autodeploy/
|
ファイルをコピーした時のサーバログ(ファイルコピーによる自動配備機能)
[#|2008-06-19T21:58:52.212+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.system.container.web|_ThreadID=19;_ThreadName=
Timer-5;|contextConfig.available /Click2Dial|#]
[#|2008-06-19T21:58:52.635+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.resource.webcontainer.jsf.config|_ThreadID=19;_Thread
Name=Timer-5;/Click2Dial;|Initializing Sun’s JavaServer Faces implemen
tation (1.2_04-b20-p03) for context ‘/Click2Dial’|#]
[#|2008-06-19T21:58:54.053+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.system.container.sip|_ThreadID=19;_ThreadName=
Timer-5;|Enabling the application Click to Dial application|#]
[#|2008-06-19T21:58:54.093+0900|INFO|sun-comms-appserver1.0|
javax.enterprise.system.tools.deployment|_ThreadID=19;_ThreadName
=Timer-5;|[AutoDeploy] Successfully autodeployed : SAILFIN_INSTALL
/sailfin/domains/domain1/autodeploy/Click2Dial.war.|#]
|
3. Webアプリケーションの実行とユーザ作成
ブラウザよりSailFinが稼働するサーバに対して接続してください。
http://sailfin.japan.sun.com:8080/Click2Dial/
すると下記のような画面が表示されます。
ここで「新規ユーザ」のハイパーリンクを押下し、
すくなくとも2人のユーザを作成してください。
4. SIP Clientの実行(X-Liteの場合)
X-Liteをインストールした後起動してください。
まず始めにSIP Accountsの設定を行います。
「Add…」ボタンを押下してSIPの
アカウントの設定を行ってください。
アカウントの設定では下記のように情報を登録してください。
注意点としては「Domain Proxy」では「proxy」を選択し、
「Address」欄にSailFinが稼働するサーバ名
(もしくはIPアドレス)を入力します。
設定後「OK」ボタンを押下すると下記の画面が表示されます。
最後に「Close」ボタンを押下します。
ボタンを押下すると下記のように表示されれば
正常にFOOさんでREGISTERに成功しています。
5. クリックしてダイアルの実行
再度Webのアプリケーションに移動して
「社員名選択画面」にて
電話を掛ける人
(X-Liteで設定したアカウント)でログイン
してください。
今回は「BAR」さんでログインします。
「BAR」さん=電話を掛ける人
ログインユーザ以外の人が登録をしている場合、
「接続可能ユーザ一覧」に名前と「接続先SIPアドレス」が
表示されます。
ここでは「FOO」さんが接続可能ですので、
「FOO」さんのリンクを押下してください。
すると接続相手(FOOさん)に電話が掛かる
ようになります。
6. ソースコードについて
作成したプログラムは、NetBeans 6.1(Mac OS X)で作成しています。
展開したアーカイブをNetBeansのプロジェクトとして読み込むと
リソースへの参照先が異なるためワーニングが一部出力されるかと思います。
その場合は、適宜御使用の環境に併せて参照先を変更してください。
※「ssa-api.jar」ファイルへの参照先はSailFinのインストールディレクトリ
配下の「lib」ディレクトリ下にあります。
ssa-api.jarファイルはSIPServletのライブラリを含むアーカイブです。
※ 作成したプログラムは2008/06月のホットトピックセミナーで
デモ用に作成した簡易プログラムです。
プログラムはデモ用に早くつくることに主をおいていたため、
かなり手抜きをしています。(特にJPAまわり)
本プログラムをどのように扱うかは御自身の判断で御使用ください。
サンプルですのでご自由にお使い頂いて結構です。
また、本プログラムを使用して発生した如何なる問題に対して
私の方で責任を負うことはできませんので、ご理解頂いた上で
ご使用ください。
(問題は起きないと思いますが、間違っても本番環境で、
そのまま使わないで下さいねってことです。)
Entry filed under: Application Server/GlassFish. Tags: SailFin.
1.
Masako Ofuchi | 2008年6月20日 5:27 午前
お!公開ですね! これは喜ぶ人もいっぱいいるはず・・・
つくばどうでしたか?
2.
よっしー | 2008年6月21日 2:02 午前
よっしーです。
まさこちゃん、喜んでいただければ
嬉しいのですが。。。。。
僕は今日(土曜日)からの参加でした。
Rubyの方々の発表もとても面白いですね。
チャールズにも今日会いました!!