Tomcat6[1].0中JNDI的配置以及常见问题
### Tomcat 6.0 中 JNDI 的配置及常见问题 #### 一、JNDI 基础概述 Java Naming and Directory Interface (JNDI) 是 Java 平台中用于查找和引用 Java 应用程序环境中对象的标准 API。在 Tomcat 服务器中,JNDI 主要用于配置数据源,以便 Web 应用能够访问后端数据库。 #### 二、JNDI 在 Tomcat 6.0 中的配置步骤 ##### 2.1 配置 context.xml 文件 为了使 Tomcat 能够管理数据源,需要在 `conf/context.xml` 文件中的 `<Context>` 节点内添加 `<Resource>` 节点。例如: ```xml <Context> <Resource name="fileManager" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="admin" password="123" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=FileManager"/> </Context> ``` 其中各属性的含义如下: 1. **name**:指定资源的 JNDI 名称。 2. **auth**:资源的认证方式。支持两种选项: - **Container**:由容器(Tomcat)创建和管理资源。 - **Application**:由应用创建和管理资源。 3. **type**:资源的 Java 类名,通常是 `javax.sql.DataSource`。 4. **maxActive**:活动连接的最大数量。设置为 0 表示无限制。 5. **maxIdle**:空闲连接的最大数量。设置为 0 表示无限制。 6. **maxWait**:获取连接时的最长等待时间(毫秒)。设置为 -1 表示无限等待。 7. **username** 和 **password**:数据库的登录用户名和密码。 8. **driverClassName**:JDBC 驱动的全限定类名。 9. **url**:连接数据库的 URL。 ##### 2.2 配置 web.xml 文件 接下来,在 `WEB-INF/web.xml` 文件中添加 `<resource-ref>` 元素,该元素指向在 `context.xml` 中定义的数据源: ```xml <resource-ref> <description>JNDI Datasource example</description> <res-ref-name>fileManager</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> ``` 这里的属性含义是: 1. **description**:资源的描述。 2. **res-ref-name**:与 `<Resource>` 元素中的 `name` 属性相对应。 3. **res-type**:资源类型。 4. **res-auth**:认证方式。 ##### 2.3 添加 JDBC 驱动 将对应的 JDBC 驱动程序(例如 `sqljdbc4.jar` 或其他版本的 Microsoft SQL Server JDBC 驱动)放置到 Tomcat 的 `lib` 目录下,以确保 Tomcat 可以加载驱动程序。 ##### 2.4 获取数据源 在 Java 代码中,可以通过以下方式获取数据源并建立数据库连接: ```java import java.sql.Connection; import javax.naming.Context; import javax.naming.InitialContext; import javax.sql.DataSource; public class DBHelper { private static Connection getCon() { Connection con = null; try { Context context = new InitialContext(); DataSource ds = (DataSource) context.lookup("java:comp/env/fileManager"); con = ds.getConnection(); } catch (Exception e) { e.printStackTrace(); } return con; } } ``` #### 三、常见问题及解决方法 1. **无法找到驱动类**: - 确保已将 JDBC 驱动添加到 Tomcat 的 `lib` 目录。 - 检查 `driverClassName` 是否正确。 2. **连接超时**: - 增加 `maxWait` 时间或检查网络连接。 - 考虑增加 `maxActive` 数量以提高并发性能。 3. **用户名或密码错误**: - 仔细核对 `username` 和 `password` 的值是否正确。 4. **URL 错误**: - 确认数据库的 URL 地址和端口号是否准确。 5. **JNDI 查找失败**: - 检查 `res-ref-name` 和 `<Resource>` 中的 `name` 是否一致。 - 确保 `<resource-ref>` 已经正确配置在 `web.xml` 中。 通过上述步骤,可以在 Tomcat 6.0 中成功配置 JNDI 数据源,并解决常见的配置问题。这不仅有助于提高开发效率,还能增强应用程序的健壮性和安全性。
- 粉丝: 0
- 资源: 10
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助