WTPでTomcatのJNDIを利用する
環境はEclipse3.4.2、WTP3.0.4、Tomcat5.5.27。プロジェクトはMavenのmaven-archetype-webappで作成。今回のDBはSQL Server 2005。
まずはsrc/main/webapp/META-INF配下にcontext.xmlを作成する。context.xmlの内容は以下の通り。
<?xml version="1.0" encoding="UTF-8"?> <Context docBase="projectname" path="/projectname" reloadable="tr ue" source="org.eclipse.jst.j2ee.server:sjp"> <Resource name="jdbc/sample" auth="Container" type="javax.sql.DataSource" factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://127.0.0.1:1433;databaseName=pj;" username="sa" password="pj" maxActive="20" maxIdle="10"/> </Context>
上記のContext要素の内容は、[Servers]->[Tomcat v5.5 Server at localhost-config]->[server.xml]からコピー。
次にsrc/main/webapp/WEB-INF/web.xmlに以下の内容を追加。
<resource-ref> <description>SQLServer2005 DataSource</description> <res-ref-name>jdbc/sample</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
最後に%CATALINA_HOME%\common\lib配下にJDBCドライバのjarファイルを放り込む。
これでWTPで起動したTomcatでもJNDIによるDataSourceの取得を行える。
ちなみにWTPでTomcatを設定した場合、以下のディレクトリをTomcat環境と見立ててServerを起動する。
- workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0