<Resource> の壁

<< 戻る   トップ >>

server.xml

新鴨乃嘴南蛮システムの構築であるが、昨晩ちと壁に突き当たっていた。これまでデータベースアクセスのたびにドライバを Class.forName() で呼び出していたのが、server.xml の <Resource>要素で指定するというより洗練された方法があることがわかったので、こちらに切り換えようと試みていた。

<Resource>要素でドライバを指定すれば、データベース・ドライバを変更してもソースコードを変更しなくても済む。server.xml を書き換えればよいのだ。その他にもメリットがあるらしいが、コネクションプーリングとか分散トランザクションとかいわれてもよく解からない。さらにいえば MySQL 以外の DBMS を使用するつもりはないのだから、あまりメリットがないような気もするのだが、やはりシステム固有記述をコードから排除するというのは魅力である。

さっそく、「ゼロからはじめる JSP/サーブレット」を参照して、設定をしてみた。

いやな予感はあった。「ゼロからはじめる...」は Tomcat 4.x 準拠だから、server.xml の設定が古い可能性はあったのである。パラメータを <Resource> と <Resource-Param> 要素に分けて書くあたりに古さを感じたし。案の上動かない。

調べてみると、Tomcat 4.x で二つの要素に分けていたパラメータが <Resource> 要素に統一されていた。次のように書くとよい。

<Resource name="jdbc/datasource" 
    auth="Container"
    type="javax.sql.DataSource"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql:///test"
    username="chomatsu"
    password="jugemujugemu"
/>

driverClassName 以下が以前は <Resource-Param> 内の要素として記述されていた。<Resource> の属性に変更されたらしい。


作成: 2006-07-02 11:02:20.0更新: 2006-07-02 11:02:20.0
http://museo-anonimo.jp/nanban/?id=230,http://museo-anonimo.jp/nanban/tr/230