配置tomcat5.5 jndi 各种配置方式 分析总结(mysql)

2023-11-08

准备工作:
安装tomcat5.5(注意这点)
安装mysql
拷贝mysql驱动到tomcat_home/common/lib下
新建一个web工程
在工程中加入index.jsp
None.gif <% @page  import = " java.util.*,javax.naming.*,java.sql.*,javax.sql.* "   %>
None.gif
<% @page contentType = " text/html;charset=BIG5 " %>
None.gif
<%     
None.gif    Context ctx 
=   new  InitialContext();      
None.gif    String strLookup 
=   " java:comp/env/jdbc/test "
None.gif    DataSource ds 
= (DataSource) ctx.lookup(strLookup);
None.gif    Connection con 
=  ds.getConnection();
ExpandedBlockStart.gifContractedBlock.gif    
if  (con  !=   null ) dot.gif {
InBlock.gif        out.print(
"success");
ExpandedBlockStart.gifContractedBlock.gif    }
else dot.gif {
InBlock.gif        out.print(
"failure");
ExpandedBlockEnd.gif    }
       
None.gif
%>
web.xml中加入
None.gif < resource - ref >
None.gif    
< res - ref - name > jdbc / test </ res - ref - name >
None.gif    
< res - type > javax.sql.DataSource </ res - type >
None.gif    
< res - auth > Container </ res - auth >
None.gif    
< res - sharing - scope > Shareable </ res - sharing - scope >
None.gif
</ resource - ref >

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

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

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

方法二:
只需在tomcat_home\webapps\myapps\META-INF\context.xml中增加:
None.gif < context >
None.gif
< Resource
None.gif          name
= " jdbc/test "
None.gif          type
= " javax.sql.DataSource "
None.gif          password
= " bb "
None.gif          driverClassName
= " com.mysql.jdbc.Driver "
None.gif          maxIdle
= " 2 "
None.gif          maxWait
= " 50 "
None.gif          username
= " root "
None.gif          url
= " jdbc:mysql://localhost:3306/test "
None.gif          maxActive
= " 4 " />
None.gif
</ context >


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

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

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

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


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

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

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

方法二:(对比类型一的配置理解)
在tomcat_home\webapps\myapps\META-INF\context.xml的Context中增加:
None.gif < context >
None.gif
< ResourceLink global = " jdbc/test "  name = " jdbc/test "  type = " javax.sql.DataSource " />  
None.gif
</ 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>之间

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

配置tomcat5.5 jndi 各种配置方式 分析总结(mysql) 的相关文章

随机推荐

  • KNN回归-预测二手车

    KNN是一个典型的分类模型 就时预测类别 例如苹果 香蕉等 预测的结果是 训练集上已经包含的类别 并不会预测出新的类别 二手车价格预测是预测车的价格 是数值 理应按照回归算法来算 怎么用knn来实现回归问题呢 找到最近的K样本之后 我们直接
  • Android - 常见内存泄露问题盘点

    1 内存泄漏的本质 内存泄漏的本质就是对象引用未释放 当对象被创建时 如果没有被正确释放 那么这些对象就会一直占用内存 直到应用程序退出 例如 当一个Activity被销毁时 如果它还持有其他对象的引用 那么这些对象就无法被垃圾回收器回收
  • 层层深入高效地拿下商户收获刷脸红利

    无现金时代已陪伴我们许久 扫码支付给消费者带去诸多便利 正当人们刚刚养成扫码支付消费习惯的时候 刷脸支付这种新的支付方式又来了 两年后 我们或将迎来 无手机 支付时代 刷脸支付将使得消费者拥有更加流畅的支付体验 对商户来说 收款也变得更加高
  • python模块matplotlib.pyplot用法_python – 虽然使用pyplot.show(),但如何使用matplotlib保持图形大小不变?...

    看看下面的python示例 import matplotlib as mpl import matplotlib pyplot as plt mpl rcParams figure figsize 8 27 11 69 fig plt fi
  • Python 数据分析与数据可视化(三)列表、元组、字典、集合与字符串

    文章目录 3 列表 元组 字典 集合与字符串 3 1 列表与列表推导式 3 1 1 创建列表 下标访问 3 1 1 1 简介 3 1 1 2 创建列表 3 1 1 3 使用下标访问列表中的元素 3 1 2 列表常用方法 3 1 2 1 ap
  • 输入身份证号判断性别并求年龄

    include
  • 如何二次封装一个el-table组件并二次复用

    注 示例使用的是vue3和element 进行二次封装的 首先我们来看效果图 总共可以分为以下几个模块 表格数据操作按钮区域 表格信息提示区域 表格主体内容展示区域 表格分页区域 表单搜索没有封装在这里是为了降低代码的耦合性 有兴趣的可以查
  • c# dataGridView 数据合并单元格

    原文地址http sigechuizi cn article 133
  • unity登录界面和场景异步加载多种方式

    文字加载场景切换 挂到摄象机上 拖入文本 此文本用于显示加载文本的位置 实际显示内容位文中文本 正在加载中时显示 夏目正在努力加载哦 加载完成后显示 ok using UnityEngine using System Collections
  • 猿人学第3题-访问逻辑 - 推心置腹分析

    3 访问逻辑 推心置腹分析 1 请求页面并进行抓包 https match yuanrenxue cn match 3 2 对抓包进行分析 判断发现每次数据请求前先请求 https match yuanrenxue cn jssm 分析参数
  • 查T结果与Z结果的P值[转载]

    T检验P值表格来自 https blog csdn net m0 37777649 article details 74937242 Z检验表格来自 https wenku baidu com view 4926021f10a6f524cc
  • 关于虚拟机的认识

    一 在实体机 物理机 上 localhost它是一个域名 对应的ip地址为 127 0 0 1 计算机网络这本书中规定的 指的本机 关于127 0 0 1 为什么是 localhost 在 C Windows System32 driver
  • bash devtty No such device or address

    hexo d bash dev tty No such device or address error failed to execute prompt script exit code 1 fatal could not read Use
  • [囧途系列之特别篇]IT者的生存之路

    blog csdn net shenyisyn article details 8545410 此文特别送给 csdn网友 kkgbn 盖宝宁 前言 我的一个很早的转文 一对夫妻程序员的故事 看到了一个由kkgbn发表的评论 评论的大意是
  • Stanford CS143 速通PA1教程

    今天做完了CS143的PA1 感觉最难的地方在于官方没有具体的文档 edX 然后COOL语言调试比较困难 以下是我对同样打算入坑CS143的同学的一些帮助吧 速通前的准备 Virtual VM Setup 如果还没有搭好环境的 建议跟着官网
  • 信号和槽机制

    信号和槽是一种高级接口 应用于对象之间的通信 它是QT的核心特性 也是QT区别于其它工具包的重要地方 信号和槽是QT自行定义的一种通信机制 它独立于标准的C C 语言 因此要正确的处理信号和槽 必须借助于一个称为moc Meta Objec
  • c++申请内存空间的本质

    c 申请内存空间的本质 void teseTwo char cc 8 cout lt lt void cc lt lt endl cout lt lt 将cc的内存空间存储字符串 lt lt endl strcpy s cc hello c
  • Unity解析服务器Json文件

    文章目录 需求 Json文件存在服务器上 Unity要获取并解析它 原理 通过 UnityWebRequest类获取服务器文本 的功能 把Json文件传输到本地 再通过写好的解析类 Unity自带的JsonUtility FromJson
  • Linux下运行Jmeter压测

    一 在Linux服务器先安装SDK 1 先从官网下载jdk1 8 0 131 tar gz 再从本地上传到Linux服务器 2 解压 tar xzf jdk1 8 0 131 tar gz 生成文件夹 jdk1 8 0 131 3 在 us
  • 配置tomcat5.5 jndi 各种配置方式 分析总结(mysql)

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