Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

TomcatでJNDIのDataSourceをDBCPを使って設定する

CATALINA_HOME\conf\Catalina\localhostのコンテキストXMLを次のようにする。

<Context path="/PATH" docBase="WORK_SPACE" workDir="WORK_DIR">
    <Resource name="jdbc/name" scope="Shareable" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/name">
        <parameter>
            <name>factory</name>
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <parameter>
            <name>url</name>
            <value>JDBC_URL</value>
        </parameter>
        <parameter>
            <name>driverClassName</name>
            <value>org.postgresql.Driver</value>
        </parameter>
        <parameter>
            <name>username</name>
            <value>USER_NAME</value>
        </parameter>
        <parameter>
            <name>password</name>
            <value>PASSWORD</value>
        </parameter>
        <parameter>
            <name>maxWait</name>
            <value>3000</value>
        </parameter>
        <parameter>
            <name>maxIdle</name>
            <value>100</value>
        </parameter>
        <parameter>
            <name>maxActive</name>
            <value>10</value>
        </parameter>
    </ResourceParams>
</Context>

Hibernateから利用するときは次のようにする。

<hibernate-configuration>
  <session-factory>
    <property name="connection.datasource">java:comp/env/jdbc/name</property>