tomcat读取jndi

2024-05-05 17:08
文章标签 读取 tomcat jndi

本文主要是介绍tomcat读取jndi,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

可能你在网上也会找到另外的一些文章,配置方法真是五花八门!但是如果你细心一点就会发现,可能都会要求你把JDBC驱动放到%CATALINA_HOME%\common\lib下面。其实这会给别人带来部署上的不方便,因为更改了别人的文件系统。

        至于为什么会有这样的要求,那是因为在配置数据源的时候,默认采用了Tomcat自带的那个DBCP数据源,或者配置了自己的数据源却没有把相应的一些JAR包放到工程的WEB-INF\lib下。

       第一种情况,如果你使用Tomcat自带的DBCP数据源,那么也就是由Tomcat来负责初始化和连接数据库,但是Tomcat没有自带JDBC驱动,在Tomcat中,Tomcat的ClassLoader不会去装载具体应用的Jar,所以当然是会报找不到驱动啦!

       第二种情况,如果配置了自己的数据源却没有相应JAR包的话,那么Tomcat就会采用他自己的JAR包,原因和上面类似。

       现在我所谓的“Tomcat使用JNDI获取数据源完美方案”,就是指只需要把相应的驱动和DBCP包放到WEB-INF\lib下,就可以通过JNDI正常访问到数据源的意思。

     首先要配置一个数据源,我这里采用DBCP,在%TOMCAT_HOME%\conf\Catalina\localhost\下建立一个以你的工程名字命名的XML文件,我这里是Test.xml,内容如下:

    <?xml version='1.0' encoding='utf-8'?>
   <Context path="/Test" docBase="F:\WorkSpace\Test\WebRoot" debug="0" reloadable="true">
  <Resource name="jdbc/manage"   auth="Container" type="javax.sql.DataSource"/> 
   <ResourceParams name="jdbc/manage"> 
     <parameter> 
     <name>factory</name> 
     <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> 
     </parameter> 
     <parameter>
     <name>removeAbandoned</name>
     <value>true</value>
     </parameter>
     <parameter>
     <name>logAbandoned</name>
     <value>true</value>
     </parameter>
     <parameter> 
     <name>url</name> 
     <value>jdbc:mysql://localhost/sample?useUnicode=true&amp;characterEncoding=UTF-8</value> 
     </parameter> 
     <parameter> 
     <name>driverClassName</name>
     <value>com.mysql.jdbc.Driver</value>
     </parameter> 
     <parameter> 
     <name>username</name> 
     <value>root</value> 
     </parameter> 
     <parameter> 
     <name>password</name> 
     <value></value> 
     </parameter>     
     <parameter> 
     <name>maxWait</name> 
     <value>3000</value> 
     </parameter> 
     <parameter> 
     <name>maxIdle</name> 
     <value>100</value> 
     </parameter> 
     <parameter> 
     <name>maxActive</name> 
     <value>10</value> 
     </parameter> 
   </ResourceParams> 
</Context>

docBase是你的工程存放的物理路径,url是连接字符串,username就是连接数据库的用户名,password是数据库连接密码。

   第二步:编辑你的工程下的WEB-INF\web.xml文件,加上以下一段:

   <?xml version="1.0" encoding="UTF-8"?>
  <web-app>
 <resource-ref>
  <res-ref-name>jdbc/manage</res-ref-name>
  <res-type>javax.sql.DataSource</res-type>
  <res-auth>Container</res-auth>
 </resource-ref>
  </web-app>

这里是做一个引用的意思,具体含义我也不清楚。

   做完以上步骤就行了,在lookup数据源的时候,需要在这个数据源前面加上java:comp/env/,这个东西是Tomcat的一个默认的命名空间。

这篇关于tomcat读取jndi的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/962218

相关文章

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

如何将Tomcat容器替换为Jetty容器

《如何将Tomcat容器替换为Jetty容器》:本文主要介绍如何将Tomcat容器替换为Jetty容器问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat容器替换为Jetty容器修改Maven依赖配置文件调整(可选)重新构建和运行总结Tomcat容器替

解决Java中基于GeoTools的Shapefile读取乱码的问题

《解决Java中基于GeoTools的Shapefile读取乱码的问题》本文主要讨论了在使用Java编程语言进行地理信息数据解析时遇到的Shapefile属性信息乱码问题,以及根据不同的编码设置进行属... 目录前言1、Shapefile属性字段编码的情况:一、Shp文件常见的字符集编码1、System编码

利用Python实现添加或读取Excel公式

《利用Python实现添加或读取Excel公式》Excel公式是数据处理的核心工具,从简单的加减运算到复杂的逻辑判断,掌握基础语法是高效工作的起点,下面我们就来看看如何使用Python进行Excel公... 目录python Excel 库安装Python 在 Excel 中添加公式/函数Python 读取

Centos环境下Tomcat虚拟主机配置详细教程

《Centos环境下Tomcat虚拟主机配置详细教程》这篇文章主要讲的是在CentOS系统上,如何一步步配置Tomcat的虚拟主机,内容很简单,从目录准备到配置文件修改,再到重启和测试,手把手带你搞定... 目录1. 准备虚拟主机的目录和内容创建目录添加测试文件2. 修改 Tomcat 的 server.X

Tomcat的下载安装与使用教程

《Tomcat的下载安装与使用教程》本文介绍了Tomcat的下载、安装和使用方法,包括在本机和云服务器上部署Tomcat的过程,以及解决启动失败问题的方法... 目录Tomcat的下载安装与使用Tomcat的下载与安装Tomcat在本机运行使用Tomcat在php云服务器上的使用总结Tomcat的下载安装与

Python如何实现读取csv文件时忽略文件的编码格式

《Python如何实现读取csv文件时忽略文件的编码格式》我们再日常读取csv文件的时候经常会发现csv文件的格式有多种,所以这篇文章为大家介绍了Python如何实现读取csv文件时忽略文件的编码格式... 目录1、背景介绍2、库的安装3、核心代码4、完整代码1、背景介绍我们再日常读取csv文件的时候经常

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

Tomcat高效部署与性能优化方式

《Tomcat高效部署与性能优化方式》本文介绍了如何高效部署Tomcat并进行性能优化,以确保Web应用的稳定运行和高效响应,高效部署包括环境准备、安装Tomcat、配置Tomcat、部署应用和启动T... 目录Tomcat高效部署与性能优化一、引言二、Tomcat高效部署三、Tomcat性能优化总结Tom