Tomcat配置JNDI数据源的方式
1、单个应用使用
Tomcat下的conf/server.xml文件中的<Host>标签中:
<Context docBase="WebApp" path="/<span style="color:#ff0000;">WebApp</span>" reloadable="true" source="org.eclipse.jst.jee.server:WebApp">
<Resource
name="<span style="color:#009900;">jdbc/mysql</span>"
scope="Shareable"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:mysql://localhost:3306/test"
driverClassName ="com.mysql.jdbc.Driver"
username="root"
password="root"
/>
</Context>
上述配置中红色字体的为项目的名称;绿色部分为JNDI数据源的名称。
工程的配置文件:
ds_jndi=java\:comp/env/jdbc/mysql
在java代码中可以通过读取配置文件得到ds_jndi的值,然后通过如下代码获得数据源。:
DataSource ds = (DataSource) ctx.lookup(ds_jndi);
2、配置全局的JNDI数据源,应用到单个应用
Tomcat下的conf/server.xml文件中的<GlobalNamingResources>标签中添加数据源:
<Resource
name="<span style="color:#009900;">jdbc/mysql</span>"
scope="Shareable"
type="javax.sql.DataSource"
factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"
url="jdbc:mysql://localhost:3306/test"
driverClassName ="com.mysql.jdbc.Driver"
username="root"
password="root"
/>
再在<HOST>标签中添加:
<Context docBase="WebApp" path="<span style="color:#ff0000;">/WebApp</span>" reloadable="true">
<ResourceLink global="jdbc/mysql" name="<span style="color:#009900;">jdbc/mysql</span>" type="javax.sql.DataSource" />
</Context>
3、配置全局JNDI数据源,应用到所有Tomcat下部署的应用
参考第二种配置数据源之后,再在Tomcat的conf/context.xml文件中添加
<Context>
<ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Context>
Tomcat配置JNDI数据源配合Spring使用
<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName">
<value>java:comp/env/jdbc/mysql</value>
</property>
</bean>
或Spring2.0之后可以使用
<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/mysql/>