`
fortianwei
  • 浏览: 60902 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

tomcat JNDI数据源配置

阅读更多

准备工作:
安装tomcat5.5(注意这点)
安装mysql
拷贝mysql驱动到tomcat_home/common/lib下
新建一个web工程
在工程中加入index.jsp

<% @page import = " java.util.*,javax.naming.*,java.sql.*,javax.sql.* " %>
<% @page contentType = " text/html;charset=BIG5 " %>
<%     
      Context ctx
= new InitialContext();      
      String strLookup
= " java:comp/env/jdbc/test " ;
      DataSource ds
= (DataSource) ctx.lookup(strLookup);
      Connection con
= ds.getConnection();
    
if (con != null ) {
          out.print(
" success " );
      }
else {
          out.print(
" failure " );
      }
       
%>

web.xml中加入

< resource - ref >
    
< res - ref - name > jdbc / test </ res - ref - name >
    
< res - type > javax.sql.DataSource </ res - type >
    
< res - auth > Container </ res - auth >
    
< res - sharing - scope > Shareable </ res - sharing - scope >
</ resource - ref >

配置tomcat
这一步的目的就是告诉tomcat如何连接数据库
可以分为两种大的类型,每种类型又有很多种配置方式
配置类型一;
(直接配置的类型,这种方式最简单)

方法一:
直接在tomcat_home/conf/localhost/下建立一个xml文件,文件名是<yourAppName>.xml
例如我的工程名叫jndi,对应的名字叫jdni.xml
内容如下:

< Context >
< Resource
            name
= " jdbc/test "
            type
= " javax.sql.DataSource "
            password
= " bb "
            driverClassName
= " com.mysql.jdbc.Driver "
            maxIdle
= " 2 "
            maxWait
= " 50 "
            username
= " root "
            url
= " jdbc:mysql://localhost:3306/test "
            maxActive
= " 4 " />
</ Context >


方法二:
只需在tomcat_home\webapps\myapps\META-INF\context.xml中增加:

< context >
< Resource
            name
= " jdbc/test "
            type
= " javax.sql.DataSource "
            password
= " bb "
            driverClassName
= " com.mysql.jdbc.Driver "
            maxIdle
= " 2 "
            maxWait
= " 50 "
            username
= " root "
            url
= " jdbc:mysql://localhost:3306/test "
            maxActive
= " 4 " />
</ context >


说明:这种配置需要告诉tomcat resource的内容,resource应用于什么地方
第一种方法通过文件名知道了app的name
第二种方式本身就在app内部,所以name肯定知道
两种方式都要放在context中

配置类型二:
(配置全局resource,然后通过resourcelink来映射)

步骤一:配置全局resource(这一步对于所有的配置都是一样的)
打开tomcat_home/conf/server.xml加入

< Resource
            name
= " jdbc/test "
            type
= " javax.sql.DataSource "
            password
= " bb "
            driverClassName
= " com.mysql.jdbc.Driver "
            maxIdle
= " 2 "
            maxWait
= " 50 "
            username
= " root "
            url
= " jdbc:mysql://localhost:3306/test "
            maxActive
= " 4 " />


步骤二:映射
(映射可以配置在多个地方,也就有多个配置方法:)

方法一:(对比类型一的配置理解)
直接在tomcat_home/conf/localhost/下建立一个xml文件,文件名是<yourAppName>.xml
例如我的工程名叫jndi,对应的名字叫jdni.xml加入如下内容

< Context >
< ResourceLink global = " jdbc/test " name = " jdbc/test " type = " javax.sql.DataSource " />
</ Context >


方法二:(对比类型一的配置理解)
在tomcat_home\webapps\myapps\META-INF\context.xml的Context中增加:

< context >
< ResourceLink global = " jdbc/test " name = " jdbc/test " type = " javax.sql.DataSource " />
</ context >


方法三:(上边两种方法都是把全局的resource 映射给jndi这个web应用,第三种方法就是把这个
全局的resource直接公开给所有的应用)
在tomcat_home/conf/context.xml的<Context></context>之间加入
<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>

运行测试:
打开ie,输入http://localhost:8080/jndi/index.jsp
看到success

常见错误:
1,Name jdbc is not bound in this Context
2,Cannot create JDBC driver of class '' for connect URL 'null' conf localhost
原因:
大多数是因为配置了全局的resource,但没有link造成的。
解决:
加入link就行了,link的方式见类型二的三种方法。

分析:
看到上边这么多方法,是否感觉眼花缭乱,其实不要死记配置,按照原理分析一下就好了。
你需要的是告诉tomcat哪个应用如何连接数据库。

类型一的方式对应一个应用单独使用这个配置的情况
就是直接告诉tomcat"应用名"    "连接数据库需要的参数"

类型二的方式对应多个应用共享一个配置的情况
这样先配置server.xml告诉tomcat全局范围的"连接数据库需要的参数"
然后映射,映射的时候
1,如果不知道"app name(应用名)"就只需要通过文件名来传递这个信息
2,如果"app name"都知道就只需要加入映射的内容
3,如果要配置成全局公用的,就不需要"app name",本身放在tomcat的context.xml中

最后再次提醒一下:所有的配置必须放在<context></context>之间

分享到:
评论

相关推荐

    tomcat配置JNDI数据源

    【标题】:“Tomcat配置JNDI数据源” 【描述】:“在Tomcat服务器上配置JNDI数据源,特别是通过DBCP连接池的方式” 【标签】:“tomcat,配置,JNDI数据源” 【内容】:配置JNDI数据源在Java Web应用程序中是一个...

    intellij idea使用tomcat开发时自动部署jndi数据源

    在这个场景中,“intellij idea使用tomcat开发时自动部署jndi数据源”是一个重要的知识点,它涉及到如何在IDE中配置和管理数据库连接,以便于在应用运行时动态地查找和使用数据源。 JNDI(Java Naming and ...

    tomcat jndi数据源解密factory

    自定义jndi数据源factory类,用于解密jndi中的加密数据,解密方式为DES,具体可根据实际需求修改。

    tomcat8 JNDI数据源加密

    TOMCAT8 JNDI对用户名和密码加密

    Tomcat JNDI 数据源 自动生成程序 Servlet 版

    根据项目名自动生成 JNDI 配置文件,使程序员从手动配置JNDI数据源中解脱出来。 使用说明: 1、把“TomcatJNDI.war”文件放入 tomcat 的 webapps 文件夹下; 2、启动tomcat,在地址栏上输入:...

    tomcat配置jndi数据源

    Tomcat 配置 JNDI 数据源 Tomcat 是一个流行的 Java Web 服务器,JNDI(Java Naming and Directory Interface)是 Java 中的一种命名和目录接口规范。Tomcat 中的 JNDI 数据源是指将数据库连接信息注册到 JNDI ...

    JNDI数据源配置(tomcat)

    "JNDI 数据源配置(tomcat)" JNDI(Java Naming and Directory Interface)是一种Java API,用于访问命名和目录服务。JNDI 数据源配置是 Java Web 应用程序中常用的数据库连接方式。Tomcat 是一个流行的 Java Web ...

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

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

    Tomcat JDNI数据源配置详解

    ### Tomcat JNDI数据源配置详解 #### 一、引言 在现代Web应用开发中,数据库连接管理是一项至关重要的任务。为了提高应用程序的性能和可维护性,通常会采用连接池技术来管理和复用数据库连接。Apache Tomcat作为一...

    Tomcat配置JNDI数据源的N种方法

    Tomcat配置JNDI数据源的N种方法

    Tomcat jndi 配置数据源过程

    总结,通过上述步骤,你已经在Tomcat中成功配置了一个JNDI数据源,使得应用程序可以通过全局名字方便地获取和释放数据库连接。这种配置方式提高了代码的可复用性和可维护性,同时利用连接池优化了数据库操作的性能。

    Tomcat JNDI配置

    在配置 Tomcat JNDI 时,可能会遇到一些常见的问题,例如数据源无法连接、JNDI 名称不正确等。解决这些问题的方法包括: * 检查数据源 URL 是否正确 * 检查 JNDI 名称是否正确 * 检查 JDBC 驱动类是否正确 * 检查...

    Tomcat6+spring+jndi配置数据源说明.docx

    Tomcat6+Spring+JNDI配置数据源说明 本文档主要介绍了Tomcat6+Spring+JNDI配置数据源的详细步骤和原理。数据源是一个池子,里面有若干个数据连接对象,当需要时就从里面拿一个使用,使用完毕就放回去,如果超过最大...

    SpringMVC+JNDI+Tomcat配置数据源

    配置全局JNDI数据源,应用到所有Tomcat下部署的应用 这种方式更加灵活和高效,只需要配置一次全局的数据源,所有部署在Tomcat上的应用程序都可以使用这个数据源。 **配置步骤**: 1. 将JDBC驱动包添加到Tomcat的`...

    Tomcat6.0 JNDI数据源经典实例

    总结来说,这个Tomcat 6.0 JNDI数据源经典实例提供了从配置到使用的全过程,包括了必要的文件和脚本,便于开发者理解和实践JNDI数据源在实际项目中的应用。正确配置和使用JNDI数据源能有效管理和优化数据库连接,...

    Tomcat中JNDI原理

    在Tomcat服务器中,JNDI的应用主要体现在其内置的JNDI实现——Tomcat JNDI,它允许开发者在应用中通过名称查找和使用资源,如数据源、环境变量等。本文将深入解析Tomcat 5.0中JNDI的工作原理,特别是`ContextBinding...

    配置 JNDI 数据源

    在Spring框架与Tomcat服务器的集成中,配置JNDI数据源是将数据库连接管理交给服务器来处理,提高应用的可移植性和资源利用率。下面将详细解释配置JNDI数据源的相关知识点。 一、JNDI数据源的概念 JNDI数据源是一种...

    tomcat中配置jndi 数据源

    tomcat中配置jndi 数据源!!!

    JNDI数据源配置

    接下来,我们来看一下如何在Tomcat服务器中配置JNDI数据源。 ##### 4.1 配置`web.xml` 首先,在`WEB-INF`目录下的`web.xml`文件中定义数据源引用: ```xml 数据源说明 &lt;res-ref-name&gt;jdbc/AcmeDB &lt;res-type&gt;...

    Tomcat下Teradata的JNDI数据源配置

    本篇文章将重点讲解如何在Tomcat服务器上配置Teradata的JNDI数据源。 首先,Teradata是一个高性能、可扩展的企业级数据库系统,广泛应用于大型企业。而JNDI则是Java平台中的一个标准服务,提供了一种查找和访问各种...

Global site tag (gtag.js) - Google Analytics