借りぐらしのファクトリー

<< 戻る   トップ >>

META-INF/context.xml に記述した Database 接続 Resource 要素に factory を指定すると war アーカイブが配備できず、指定しないとクラスが見つからん、という問題について調べてみると、結構 FAQ な問題らしい。とにかく BasicDataSourceFactory というクラスが必要で、これは普通 Apache の commons-dbcp.jar に含まれているのだが、これを Tomcat プロジェクトで他の commons ライブラリとともにまとめて tomcat-dbcp.jar にして配布しているのだそうだ。これを、やんごとなき理由*で Fedora を初めとするディストリビュータが配布していないらしい。

そこで、前回は factory 属性を使って commons-dbcp.jar を使うようにしたのだが、それがうまく働かなくなったのだ。そこで、ありがちな対策で、tomcat-dbcp.jar をApache の配布している Tomcat から移植するという手法を採用してみた。これにて動作確認。長い道であったが、Tomcat の復旧試験まで完了した。いわばオリジナルパッケージからファクトリークラスを「借りぐらし」で解決したのかな、と。

tomcat-dbcp.jar は Apache の commons-collections・commons-dbcp・commons-pool を再編集して合体させたものらしい。多くの Linux ディストリビューションはその安全性とオープン性を担保するために、オリジナルソースコードからのビルドを基本方針としている。したがって、オリジナルを再編集した tomcat-dbcp.jar をディストリビューションに加えることを嫌っているようだ。

作成: 2012-03-04 17:37:42.0更新: 2012-03-05 14:11:08.0
http://museo-anonimo.jp/nanban/?id=1074,http://museo-anonimo.jp/nanban/tr/1074