配置Tomcat 5 JNDI连接数据库步骤
需积分: 9 154 浏览量
更新于2024-10-01
收藏 2KB TXT 举报
"配置Tomcat5以支持JNDI数据源"
在Java应用服务器如Tomcat中,JNDI(Java Naming and Directory Interface)用于管理应用的资源,如数据源(DataSource),提供了一种统一的方式来查找和访问这些资源。在本配置中,我们将详细解释如何在Tomcat5中设置JNDI数据源,以便应用程序能够透明地连接到数据库。
首先,我们需要在Tomcat的主配置文件`server.xml`中进行修改。这个文件通常位于`$TOMCAT_HOME/conf`目录下。我们需要找到`<Host>`节点,并在这个节点内部增加一个`<Context>`元素来定义一个全局的JNDI资源。例如:
```xml
<Host ...>
...
<Context>
<ResourceLink global="hdmis" name="hdmis" type="javax.sql.DataSource"/>
</Context>
...
</Host>
```
在这个`<ResourceLink>`元素中,`global`属性是JNDI名称,`name`属性是资源的内部引用名称,而`type`属性定义了资源的类型,这里是`javax.sql.DataSource`,表示我们配置的是一个SQL数据源。
接下来,我们需要创建一个具体的`DataSource`实例。在`$TOMCAT_HOME/conf/Catalina/localhost`目录下,为你的项目创建一个XML文件,文件名应与你的Web应用上下文路径相匹配,例如`XXX.xml`。然后在该文件中添加以下内容:
```xml
<?xml version="1.0" encoding="UTF-8"?>
<Context>
<Resource name="hdmis"
type="javax.sql.DataSource"
password="hdmis"
driverClassName="oracle.jdbc.driver.OracleDriver"
maxIdle="2"
maxWait="50"
username="hdmis"
url="jdbc:oracle:thin:@192.168.1.40:1521:oracle"
maxActive="4"/>
</Context>
```
这里的`<Resource>`元素包含了数据库连接的详细信息,包括用户名、密码、驱动类名、URL以及连接池的配置参数。
接着,为了使Web应用程序能够识别并使用这个JNDI数据源,我们需要在项目的`WEB-INF/web.xml`文件中的`<web-app>`节点下添加一个`<resource-ref>`元素,这样应用就可以通过JNDI查找来获取数据源:
```xml
<web-app ...>
...
<resource-ref>
<description>DBConnection</description>
<res-ref-name>hdmis</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
...
</web-app>
```
`<res-ref-name>`属性应与`<Resource>`或`<ResourceLink>`中的`name`属性匹配,`res-type`表示资源的类型,同样应与`<Resource>`中的`type`属性一致。`res-auth`指定认证方式,这里设置为`Container`,意味着由容器(Tomcat)负责认证,而`res-sharing-scope`定义了资源的共享范围。
最后,确保在Tomcat的`common/lib`目录下包含了对应的数据库驱动JAR文件,比如对于Oracle数据库,应有`ojdbc14.jar`或类似的驱动包。
完成以上步骤后,你的Tomcat5就已经配置好JNDI数据源,你的Web应用可以通过JNDI名称`java:comp/env/hdmis`来访问这个数据源,从而实现与Oracle数据库的连接。这种方式的好处在于,数据源的配置和应用程序代码分离,便于管理和维护。
点击了解资源详情
2019-03-25 上传
2019-07-03 上传
2008-11-04 上传
2021-01-19 上传
-魑魅魍魉-
- 粉丝: 9
- 资源: 26
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析