Tomcat配置JNDI数据源全面指南
需积分: 10 45 浏览量
更新于2024-09-09
收藏 86KB PDF 举报
"本文将介绍如何在Tomcat服务器中配置JNDI(Java Naming and Directory Interface)数据源,以便多个应用程序可以共享和管理数据库连接。JNDI是一个接口,允许Java应用查找和访问各种命名和目录服务,如数据源、邮件会话等。通过配置JNDI数据源,我们可以实现数据库连接的集中管理和透明共享,提高应用的可维护性和伸缩性。"
在Tomcat中配置JNDI数据源主要有以下几种方法:
1. 配置单个应用程序的数据源
在每个应用程序的`WEB-INF/web.xml`文件中定义数据源。这种方法只适用于特定的应用程序,不便于多应用共享。配置示例如下:
```xml
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/db</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
```
然后在`$CATALINA_BASE/conf/context.xml`(或者应用程序的META-INF/context.xml)中定义具体的数据源属性。
2. 配置全局数据源,应用于单个应用程序
在`$CATALINA_BASE/conf/server.xml`中的`<Host>`或`<Context>`元素内定义数据源,这样配置的数据源只能被特定的应用程序使用。例如:
```xml
<Context path="/yourapp" docBase="yourapp">
<Resource
name="jdbc/db"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root123"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/scm"/>
</Context>
```
3. 配置全局数据源,应用于所有应用程序
这是最常见的配置方式,全局数据源可以在`$CATALINA_BASE/conf/server.xml`的`<GlobalNamingResources>`部分定义,供所有应用程序使用。例如:
```xml
<GlobalNamingResources>
<Resource
name="jdbc/db"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root123"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/scm"/>
</GlobalNamingResources>
```
如果希望应用程序使用全局数据源,可以在`<Context>`元素中添加`<ResourceLink>`引用:
```xml
<Context path="/yourapp" docBase="yourapp">
<ResourceLink global="jdbc/db" name="jdbc/db"/>
</Context>
```
通过以上三种方式,我们可以根据实际需求灵活配置JNDI数据源。这种方式的优点在于,当需要调整数据库连接参数或更换数据库时,只需要在一个地方修改,减少了维护成本。同时,由于数据源管理在服务器级别,可以更好地进行性能优化和资源管理,如连接池的大小调整、超时设置等。
2013-07-24 上传
2016-12-13 上传
点击了解资源详情
2012-02-07 上传
须佐能乎!
- 粉丝: 171
- 资源: 1
最新资源
- 前端协作项目:发布猜图游戏功能与待修复事项
- Spring框架REST服务开发实践指南
- ALU课设实现基础与高级运算功能
- 深入了解STK:C++音频信号处理综合工具套件
- 华中科技大学电信学院软件无线电实验资料汇总
- CGSN数据解析与集成验证工具集:Python和Shell脚本
- Java实现的远程视频会议系统开发教程
- Change-OEM: 用Java修改Windows OEM信息与Logo
- cmnd:文本到远程API的桥接平台开发
- 解决BIOS刷写错误28:PRR.exe的应用与效果
- 深度学习对抗攻击库:adversarial_robustness_toolbox 1.10.0
- Win7系统CP2102驱动下载与安装指南
- 深入理解Java中的函数式编程技巧
- GY-906 MLX90614ESF传感器模块温度采集应用资料
- Adversarial Robustness Toolbox 1.15.1 工具包安装教程
- GNU Radio的供应商中立SDR开发包:gr-sdr介绍