アットウィキロゴ
TERA WEBのチュートリアルをTomcatのJNDIからデータソースを取得するようにする

TomcatのJNDI設定

参考URLには、server.xmlとweb.xmlの設定が必要であるとか、adminでtomcatにログインしてデータソースの設定が必要であるとか書いてあるが、特に必要なかった。

1. context.xmlの設定
META-INF/context.xmlに設定を書けば、server.xmlに設定がコピーされた。
■context.xml
 <Context>
 <Resource
    name="terasoluna_tutorial"
    type="javax.sql.DataSource"
    driverClassName="org.hsqldb.jdbcDriver"
    password=""
    maxIdle="2"
    maxWait="5000"
    username="sa"
    url="jdbc:hsqldb:hsql://127.0.0.1:9001/terasoluna"
    maxActive="4"/>
 </Context>

■server.xml
 <Host>
 <Context docBase="C:\pleiades-wtp_3.3\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\ROOT" path="" reloadable="false"/>
 <Context docBase="C:\pleiades-wtp_3.3\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\tutorial-thin" path="/tutorial-thin" reloadable="true" source="org.eclipse.jst.j2ee.server:tutorial-thin">
 <Resource driverClassName="org.hsqldb.jdbcDriver" maxActive="4" maxIdle="2" maxWait="5000" name="terasoluna_tutorial" password="" type="javax.sql.DataSource" url="jdbc:hsqldb:hsql://127.0.0.1:9001/terasoluna" username="sa"/>
 </Context>
 </Host>

データベース接続設定

1. applicationContext.xmlの編集
 <bean id="TerasolunaDataSource"
   class="org.springframework.jndi.JndiObjectFactoryBean">
   <property name="jndiName" value="java:comp/env/terasoluna_tutorial" />
 </bean>

JDBCドライバの配置

1. tomcatのcommon/libにhsqldb.jarを配置する

気になること

web.xmlのresource-ref要素を設定しなくてもJNDIでリソースが取れてしまうのだが・・・なんでだろ?
springでリソースを取得するからいらないのかな?


最終更新:2009年03月17日 18:20