服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟主机|服务器安全|DNS服务器|服务器知识|Nginx|IIS|Tomcat|

服务器之家 - 服务器技术 - Tomcat - Tomcat配置JNDI数据源的三种方式

Tomcat配置JNDI数据源的三种方式

2021-09-24 16:14Jlins Tomcat

项目已经做了很久了,今天终于抽空把一些项目中的东西总结一下,本文就来总结一下Tomcat配置JNDI数据源的三种方式,感兴趣的可以参考一下

在我过去工作的过程中,开发用服务器一般都是Tomcat

数据源的配置往往都是在applicationContext.xml中配置一个dataSource的bean

然后在部署时再修改JNDI配置

我猜是因为Tomcat的配置需要改配置文件

不像JBoss,Weblogic等服务器在管理界面可以直接添加JNDI数据源

也很少人去研究它的配置

最近做了个小项目,发布版本的时候都是通过ant编译成jar包之后丢给测试

测试是大爷,教他修改数据源了还是当没听到

周末闲来无聊,看了一些Tomcat配置的教程,下面做一些总结

注:如果你的工程是直接丢在webapps下面的,server.xml中就没有工程对应的Context节点

更新:由于之前有些配置来自网络,不太好用,作了一些更新

 对每种方法作了一些个人评价

 PS:以下配置在apache-tomcat-6.0.35下测试通过,可以访问数据库

第一种,单个应用独享数据源

就一步,找到Tomcat的server.xml找到工程的Context节点,添加一个私有数据源

?
1
2
3
4
5
6
7
8
9
10
11
12
<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

优点:简单

缺点:重用性差

第二种,配置全局JNDI数据源,应用到单个应用

分两步

第一步, 找到Tomcat的server.xml中GlobalNamingResources节点,在节点下加一个全局数据源

?
1
2
3
4
5
6
7
8
9
10
11
<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"
/> 
<script type="text/javascript"> </script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

第二步,找到要应用此JNDI数据源的工程Context节点,增加对全局数据源的引用ResourceLink 

?
1
2
3
<Context docBase="WebApp" path="/WebApp" reloadable="true"
    <ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" /> 
</Context>

优点:重用性,可控性

缺点:配置相对第三种方法要繁琐一点,每个工程都得配

第三种,配置全局JNDI数据源,应用到所有Tomcat下部署的应用

也分两步

第一步

    参考第二种的第一步

第二步,找到Tomcat的context.xml,在Context节点下加一个ResourceLink节点对第一步配置的数据源进行引用
这个XML配置文件的根节点就是<Context>

?
1
2
3
4
<Context
    <ResourceLink global="jdbc/mysql" name="jdbc/mysql" type="javax.sql.DataSource" /> 
   <WatchedResource>WEB-INF/web.xml</WatchedResource
<Context

优点:重用性,一次性到位
缺点:没有可控性

Spring对JNDI数据源的引用

在applicationContext.xml中加一个bean,替代原来的dataSource

?
1
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/mysql" /> 

C3P0数据源的配置

type和factory的值发生变化

 username=>user

 url=>jdbcUrl

 driverClassName=>driverClass

?
1
2
3
4
5
<Resource name="jdbc/mysql_c3p0" scope="Shareable"
    type="com.mchange.v2.c3p0.ComboPooledDataSource"  
    factory="org.apache.naming.factory.BeanFactory"
    jdbcUrl="jdbc:mysql://localhost:3306/test" driverClass="com.mysql.jdbc.Driver"
    user="root" password="root" /> 

到此这篇关于Tomcat配置JNDI数据源的三种方式的文章就介绍到这了,更多相关Tomcat配置JNDI数据源内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/dyllove98/article/details/7706218

延伸 · 阅读

精彩推荐
  • TomcatTomcat日志文件定时清理备份的脚本

    Tomcat日志文件定时清理备份的脚本

    这篇文章主要介绍了Tomcat日志文件定时清理备份的脚本的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下...

    jaamy8492021-08-15
  • TomcatMac+IDEA+Tomcat配置的方法步骤

    Mac+IDEA+Tomcat配置的方法步骤

    本主要介绍了Mac+IDEA+Tomcat配置的方法步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    海M滨8062021-11-14
  • Tomcatidea打包成war包部署到tomcat及访问路径问题(图文详解)

    idea打包成war包部署到tomcat及访问路径问题(图文详解)

    这篇文章主要介绍了idea打包war包部署到tomcat以及访问路径问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴...

    Ma_Bu_Teng7952021-09-12
  • Tomcattomcat的配置使用详细版(小结)

    tomcat的配置使用详细版(小结)

    开发者开发部署web应用时通常使用tomcat服务器,这篇文章主要介绍了tomcat的配置使用详细版(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参...

    yumiaoxa5592021-08-31
  • TomcatCentOS系统下安装Tomcat7的过程详解

    CentOS系统下安装Tomcat7的过程详解

    今天开始学习Tomcat7 ,学习前首先需要安装,我用的系统是CentOS系统,所以下面这篇文章主要介绍了CentOS系统下安装Tomcat7的过程,需要的朋友可以参考下,下...

    上品物语5902021-08-16
  • Tomcat解决Tomcat10 Catalina log乱码问题

    解决Tomcat10 Catalina log乱码问题

    这篇文章主要介绍了解决Tomcat10 Catalina log乱码问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的...

    条卯李系瓜皮10672021-09-17
  • Tomcat如何在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目

    如何在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目

    这篇文章主要介绍了在IntelliJ IDEA 2018上配置Tomcat并运行第一个JavaWeb项目,需要的朋友可以参考下...

    「已注销」4242021-09-15
  • TomcatTomcat核心组件及应用架构详解

    Tomcat核心组件及应用架构详解

    众所周知Tomcat 就是一个 Servlet 容器,为了方便使用,他们具有http服务器的功能,所以Tomcat 就是一个“HTTP 服务器 + Servlet 容器”,我们也叫它们 Web 容器,...

    PoetryAndTheDistance12612021-09-24