Tomcat6配置JNDI数据源教程:三种方法解析

需积分: 10 3 下载量 68 浏览量 更新于2024-09-15 收藏 5KB TXT 举报
"在Tomcat服务器中配置数据源JNDI是JavaWeb应用程序连接数据库的重要方式,它允许应用通过统一的名称(JNDI名称)查找和管理数据源,而无需在代码中硬编码数据库连接参数。本教程将详细介绍如何在Tomcat 6.0版本中设置数据源JNDI,包括三种不同的配置方法,以及解决可能出现的异常问题。" 在Tomcat中配置数据源JNDI的方法主要有以下三种: 方法一:通过`context.xml`配置 1. 首先,在Tomcat的`conf`目录下的`context.xml`文件中添加数据源配置。在`<Context>`标签内,创建一个`<Resource>`元素,指定数据源的相关属性,例如名称、认证方式、类型、数据库用户名、密码、驱动类名以及数据库连接URL等。例如: ```xml <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" password="localhost" username="root" driverClassName="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/myznt" maxActive="100" maxIdle="30" maxWait="5000"/> ``` 2. 然后,在应用的`WEB-INF/web.xml`文件中添加资源引用(`<resource-ref>`),以关联之前在`context.xml`中定义的数据源: ```xml <resource-ref> <description>MySQLDataSource</description> <res-ref-name>jdbc/myznt</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ``` 这里的`res-ref-name`应该与`context.xml`中的`name`属性匹配。 方法二:通过`server.xml`配置 另一种方法是在`conf/server.xml`文件的`<GlobalNamingResources>`元素下配置全局数据源,这样所有部署在Tomcat上的应用都能访问到这个数据源。配置过程类似,只是位置不同。 异常处理 在配置过程中可能会遇到一些常见异常,例如: 1. `org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'`:这通常是因为没有正确配置或缺失了数据库驱动。确保已将相应的JDBC驱动库(如MySQL的`mysql-connector-java.jar`)添加到Tomcat的`lib`目录。 2. `java.sql.SQLException: No suitable driver`:这个错误意味着找不到适合的数据库驱动。检查驱动类名是否正确,并确认驱动库已加载。 3. `Name jdbc is not bound in this context`:此错误表明JNDI名称未绑定。确保`context.xml`或`server.xml`中的`name`属性与`web.xml`中的`res-ref-name`属性一致。 配置完成后,应用可以通过JNDI查找并获取数据源,从而实现对数据库的连接和操作,提高了代码的可维护性和灵活性。例如,使用Java代码可以这样获取数据源: ```java InitialContext ic = new InitialContext(); DataSource ds = (DataSource) ic.lookup("java:comp/env/jdbc/myznt"); Connection conn = ds.getConnection(); ``` 这里,`java:comp/env/jdbc/myznt`就是我们在配置文件中定义的JNDI名称。