Tomcat+OracleでJNDIを使ったDB接続

TOMCAT_HOME/common/lib以下に、

classes12.jar
common-collection-*.*.jar
common-dbcp-*.*.jar
common-pool-*.*.jar

を置く。classes12.jarは、classes12.zipの拡張子をjarにするだけ(ファイル名を変更)でいいらしい。TOMCAT_HOME/conf/server.xmlタグ内に、以下を追加

<Resource name="jdbc/oracleDB" auth="Container"
type="javax.sql.DataSource" />
<ResourceParams name="jdbc/oracleDB">
<parameter>
<name>username</name>
<value>user</value>
</parameter>
<parameter>
<name>password</name>
<value>pass</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@localhost:1521:dbname</value>
</parameter>
</ResourceParams>

プロジェクトのweb.xmlタグ内に以下を追加(2010/3/1修正)

<resource-ref>
<res-ref-name>
jdbc/oracleDB
</res-ref-name>
<res-type>
javax.sql.DataSource
</res-type>
<res-auth>
Container
</res-auth>
</resource-ref>

以下のようにDBに接続する。

Context initCtx = new InitialContext();
Context ctx = (Context)initCtx.lookup("java:/comp/env");
DataSource ds = (DataSource)ctx.lookup("jdbc/oracleDB");
Connection conn = ds.getConnection();
// DB処理
conn.close();