一般来讲,要使用JNDI需要完成以下三个步骤:
1、 驱动器jar包放置;
2、 配置文件的配置;
3、 在程序中调用;
根据范围层次,可分为两种配置方案。一种是Web应用层次上的局部配置方式,它只可以在自己的Web项目中使用。另一个是全局配置方式,通过资源连接,它可以供该Tomcat下的所有Web应用使用;
4.1 Web应用的局部配置方式
找到Tomcat的server.xml找到工程的Context节点,添加一个私有数据源
<Context docBase="WebApp" path="/WebApp" reloadable="true" source="org.eclipse.jst.jee.server:WebApp">
<Resource
name="jdbc/mysql"
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>
4.2 服务器的全局配置方式
- 配置全局JNDI数据源,应用到单个应用
找到Tomcat的server.xml中GlobalNamingResources节点,在节点下加一个全局数据源
<GlobalNamingResources>
<Resource
name="jdbc/mysql"
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"
/>
</GlobalNamingResources>
找到要应用此JNDI数据源的工程Context节点,增加对全局数据源的引用ResourceLink
<ResourceLinkglobal="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" />
【Spring对JNDI数据源的引用】
在applicationContext.xml中加一个bean,替代原来的dataSource
1、 jee:jndi-lookup**id="dataSource"jndi-name="jdbc/mysql"**/;
对Tomcat内部来讲,全局资源和局部命名资源都有各自的命令上下文。全局命名资源对Web应用是不可见的。只能通过ResourceLink从全局命名资源中查找对应的资源。局部部署只能有对应的web 应用使用,而全局部署可供所有的Web 应用使用。
5.Tomcat的标准资源
Tomcat标准资源包括如下几类:
1、 普通JavaBean资源:;
主要用于创建某个Java类对象供Web应用使用。
1、 UserDatabase资源:;
它一般会配置成为一个全局资源,作为具有认证功能的数据源使用,一般该数据源通过XML(conf/tomcat-user.xml)文件存储
2、 JavaMail会话资源:;
Tomcat提供JavaMail服务,可以使用发送Email功能;
3、 JDBC数据源资源;
默认的JDBC数据源基于DBCP连接池;