2010/02/04

WTPでTomcatのJNDIを利用する

環境はEclipse3.4.2、WTP3.0.4、Tomcat5.5.27。プロジェクトはMavenのmaven-archetype-webappで作成しました。DBはSQLServer2005です。
まずはsrc/main/webapp/META-INF配下にcontext.xmlを作成します。context.xmlの内容は以下の通り。
  1. <!--xml version="1.0" encoding="UTF-8"?-->  
  2. <context docbase="projectname" path="/projectname" reloadable="true" source="org.eclipse.jst.j2ee.server:sjp">  
  3.   <resource name="jdbc/sample" <brbr="">    auth="Container"  
  4.     type="javax.sql.DataSource"  
  5.     factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"  
  6.     driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"  
  7.     url="jdbc:sqlserver://127.0.0.1:1433;databaseName=pj;"  
  8.     username="sa"  
  9.     password="pj"  
  10.     maxActive="20"  
  11.     maxIdle="10"/>  
  12. </resource></context>  

上記のContext要素の内容は、Servers -> Tomcat v5.5 Server at localhost-config -> server.xmlからコピーしました。

次にsrc/main/webapp/WEB-INF/web.xmlに以下の内容を追加します。
  1. <resource-ref>  
  2.     <description>SQLServer2005 DataSource</description>  
  3.     <res-ref-name>jdbc/sample</res-ref-name>  
  4.     <res-type>javax.sql.DataSource</res-type>  
  5.     <res-auth>Container</res-auth>  
  6.     <res-sharing-scope>Shareable</res-sharing-scope>  
  7. </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

0 件のコメント:

コメントを投稿