これまで eclipse で製造していたWebアプリケーションを、Profiler にかけるため、NetBeans に必死で移行。その結果、DataSource でコケる。
javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'
やっぱり設定をコピペするだけでは、動いてくれないらしい。ううう。
原因は Tomcat にあり。これまで Tomcat5.0 で開発していたのだけれども、NetBeans5.0 にバンドルされていたのは Tomcat5.5 だった。「0.5くらいなら大丈夫だべ」と思って強気で攻めたんだけど、だいぶ違うみたいでして。トム猫さん、頼むよ。
具体的には、JNDI リソースの指定方法が変わった。設定は、<ResourceParams> タグを使わず、<Resource> タグの属性として指定しなければいけなくなったようだ。
以下、設定のサンプル。
まずは、Tomcat5.0系の場合。(Postgresql に接続する場合)
<Resource name="jdbc/deftrash" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/deftrash">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.postgresql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:postgresql://192.168.0.10:5432/deftrash</value>
</parameter>
<parameter>
<name>username</name>
<value>postgres</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>180000</value>
</parameter>
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
</ResourceParams>
これを Tomcat5.5系に移植する場合は、以下のようにしなければならない。
<Resource name="jdbc/deftrash"
auth="Container"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://192.168.0.10:5432/deftrash"
username="postgres"
password="password"
maxActive="10"
maxIdle="10"
maxWait="180000"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true" />
ソースとしてはスッキリするけれども、気持ちはスッキリしない。どうして変えちゃうかなあ。地味すぎるし。これで数時間ほど無為に過ごしてしまったので、ちょっとご機嫌ナナメです。うーん。
このエントリーのトラックバックURL
http://www.deftrash.com/admin/mt4/mt-tb.cgi/316
