November 2008 Archives

SailfinでMySQLを使えるようにするための手順。

1. MySQL JDBCドライバをhttp://dev.mysql.com/downloads/connector/j/5.1.htmlからダウンロード。

2. ダウンロードしたZIPファイルを解凍する。

3. mysql-connector-java-5.x.x-bin.jar を{Sailfinをインストールしたディレクトリ}\lib にコピーする。

4. Sailfinを 'asadmin start-domain domain1'コマンドを実行して起動する。ちなみにasadminコマンドは{Sailfinをインストールしたディレクトリ}/binにあります。

5. Sailfinの管理画面へとログインします。デフォルトではhttp://localhost:4848/login.jsfになっています。インストール時にsetup.xmlなどで変更していなければ、ユーザ名とパスワードはそれぞれadmin,adminadminとなっています。

6. 管理画面の左側にあるCommonTaskのResourcesメニューをクリックし、JDBCメニュー配下にあるConnection Poolsをクリックします。

7. Resource Typeとしてjavax.sql.ConnectionPoolDataSourceを、Database vendorとしてMySQLを選択し、新しいConnectionPoolの名前を入力します。

8. 後はウィザード通りに進んで最後に"Ping"ボタンを押してConnection Poolが正しくセットアップされたかどうか確認してください。

9. 続いてJDBCメニューにあるJDBC Resourcesをクリックします。

10. JDBC Resourceを特定するのに使われるJNDI Nameを入力します。先程作成したConnectionPoolを'Pool Name'として選択します。

11. OKボタンを押して終了となります。コードでは先程指定したJNDI Nameを指定してデータソースにアクセスすることができるようになります。

今回は大学のプロジェクトの関係でmod_jkによるApache-Sailfin連携環境を構築する機会があったので未来の自分のためにもここで紹介しておこうと思う。というのも、一年もすれば確実にやり方を忘れてしまいそうなので。。。
さて、mod_jkを使ったApacheとTomcatの連携はよく知られているけど、ApacheとSailfinでも結果的に同じことが可能であった。ただやり方はちょっと面倒くさい。
ちなみにSailfinとは
  • オープンソースアプリケーションサーバー
  • ベースはGlassfish
  • Sip Servletが使える
  • 管理・Netbeansを使うと開発が簡単
というアプリケーションサーバーである。ベースがGlassfishということなので、この記事あたりを参考にすれば普通にできるかなぁと思ったので今回試してみました。

構築環境:
OS: Ubuntu Server 8.04
Apache(httpd): Apache 2.28
mod_jkのバイナリ 1.2.27

1. mod-jkをインストールする。


mod-jkが我がサーバーにはないので、まずはここからダウンロードする。
Apacheのバージョン情報に応じてダウンロードするものが違うみたいなので、下記のコマンドを実行し出力されたApacheのバージョンに合ったモジュールをダウンロードする。

/usr/sbin/apache2ctl -v (もしくはhttpd -v など実行)

ダウンロードしたモジュールをmod-jk.soとリネームして/usr/lib/apache2/modulesに配置する。
続いてmod_jk.confとworkers.propertiesを下記を参考にして作成し、/etc/apache2/confに配置する。

[mod_jk.conf]
JkWorkersFile /etc/apache2/conf/workers.properties
# Where to put jk logs
JkLogFile /var/log/apache2/mod_jk.log
# Set the jk log level [debug/error/info]
JkLogLevel debug
# Select the log format
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# JkOptions indicate to send SSL KEY SIZE
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
# JkRequestLogFormat: set the request format
JkRequestLogFormat "%w %V %T"
# Send all jsp requests to Sailfin
JkMount /examples/*.jsp ajp13
# Send all XMLTester/XmlService requests to Sailfin
JkMount /XMLTester/XmlService ajp13

(注)JkMount->場合によってはVirtualHostごとに設定が必要。

[workers.properties]
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.cachesize=10
worker.ajp13.cache_timeout=600
worker.ajp13.socket_keepalive=1
worker.ajp13.socket_timeout=300
次は/etc/apache2/mods-availableにmod_jk.confとmod_jk.loadを作成し、
/etc/apache2/mods-enabledからシンボリックリンクを張る。

cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/mod_jk.load mod_jk.load
sudo ln -s ../mods-available/mod_jk.conf mod_jk.conf

[mod_jk.load]
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
[mod_jk.conf]
<IfModule mod_jk.c>
   Include /etc/apache2/conf/mod_jk.conf
</IfModule>

最後にApacheを再起動します。
sudo /etc/init.d/apache2 restart

2. AJPコネクタモジュールなどをインストール。

Apache Jakarta Projectからcommons-logging-1.1.1.jarを入手します。
Tomcat 5.5.16のserver/libに含まれている下記の2ファイルをコピーします。

  1. tomcat-ajp.jar
  2. commons-modeler.jar
ここで下記3ファイルをsailfinがインストールされたディレクトリ(例えば/usr/share/sailfin)のlibディレクトリにコピーします。
  1. tomcat-ajp.jar
  2. commons-logging-1.1.1.jar
  3. commons-modeler.jar
Sailfinをあらかじめ起動しておき、SailfinのbinディレクトリにあるasadminコマンドでJVMオプションを追加します。

asadmin 
create-jvm-options -Dcom.sun.enterprise.web.connector.enableJK=8009

(Sailfinディレクトリ)/domains/(ドメイン名)/configディレクトリに以下の内容でsailfin-jk.propertiesファイルを作成。他サイトの情報によるとこれをやらないとREMOTE_USER情報がSailfinに渡されないとのこと。
 
[sailfin-jk.properties]
tomcatAuthentication=false

続いて設定するドメインに応じて下記コマンドを変更した上で実行し、Sailfinが
sailfin-jk.propertiesをロードするようにする。

asadmin create-jvm-options
-Dcom.sun.enterprise.web.connector.enableJK.propertyFile=
/usr/share/sailfin/domains/domain1/config/sailfin-jk.properties


最後にドメインを再起動して終了です。
後は適当なJSPファイルを使ってちゃんと動いているか確認してください。
asadmin stop-domain domain1
asadmin start-domain domain1

お疲れ様でした。
[参考サイト]
http://www.office-matsunaga.biz/dev/description.php?id=6
http://weblogs.java.net/blog/jfarcand/archive/2006/03/running_glassfi_1.html
今日は今取り組んでいる電話会議プロジェクトのログイン画面を公開したいと思います。
一日でも早く友人たちを使ったテストを始めたいですねw。WebUIの経験はあまり無いので、デザインが微妙とかいうクレームはなしの方向でお願いします(笑)。

WebUI_Concal.JPG

疲れました!

| | Comments (0) | TrackBacks (0)
今日の夜にキャリアフェアのあったボストンから帰ってきました。
いや~、久しぶりにたくさんの日本人を見ました。
そして疲れました、特に一日目のハプニングのせいで。
というのも、出発日に予約しておいた飛行機がメカニックトラブルでキャンセルされ、午前中の面接をキャンセルする羽目になり、それらを午後に詰め込んだためスケジュールがなかなか激しいことに。。。会場を走り回りましたw。
ちなみに今回受けた5社は全て外資系になりました。IT系の会社と外資系投資銀行ですね。
2年前のキャリアフォーラムでは応募しなかった金融系の会社を今回受けてみたのですが、なかなか勉強になりましたね。それにしても外資系投資銀行は受けてる人のレベルが高いな~と。
ディナーにも連れてってもらったりしたのですが、MIT、UPENN、Columbiaなど名の通った大学の方々がたくさんいました。
とにかく、僕的には結果も含めて満足のいくキャリアフォーラムになりましたね。
あまり時間はかけられませんが、納得のいく結論を出したいです。
今日は疲れたのでこれから爆睡します。おやすみなさい。

About this Archive

This page is an archive of entries from November 2008 listed from newest to oldest.

October 2008 is the previous archive.

December 2008 is the next archive.

Find recent content on the main index or look in the archives to find all content.