当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

tomcat 6.0 JNDI 配置

发表于: 2010-09-15   作者:cw_xcy   来源:转载   浏览次数:
摘要: 1.按装tomcat 6.0(我用的免安装版) 2.下载相应的数据库驱动,一般都在数据库安装文件中找得到,把它放到tomcat安装目录的Lib下,因为数据连接池有tomcat负责创建和管理,所以要必须在tomcat启动时就告诉它驱动在哪里。 新建一个web工程 在工程中加入index.jsp <%@page import="java.util.*,javax.naming.
1.按装tomcat 6.0(我用的免安装版)
2.下载相应的数据库驱动,一般都在数据库安装文件中找得到,把它放到tomcat安装目录的Lib下,因为数据连接池有tomcat负责创建和管理,所以要必须在tomcat启动时就告诉它驱动在哪里。
新建一个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/下建立一个xml文件,文件名是context.xml
因为tomcat6.0 此目录下已经有一个context.xml文件,所以直接编辑就可以了,把resource内容加到context标签里就可以了
内容如下:
<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应用于什么地方


配置类型二:
(配置全局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 6.0 把以上内容放到<GlobalNamingResources>标签中

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

方法一:(对比类型一的配置理解)
直接编辑在tomcat_home/conf/下的context.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>


运行测试:
打开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中

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

tomcat 6.0 JNDI 配置

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
参考了别人的资料 但是忘记了地址了,,我会将所有的参考的文件打成压缩包提供下载的,这个项目配置了
参考了别人的资料 但是忘记了地址了,,我会将所有的参考的文件打成压缩包提供下载的,这个项目配置了
最近有项目用到JNDI,为了方便的更改数据库和环境,好吧,那我就来学习下,顺便分享下方法,网上的
原文http://www.cnblogs.com/shyy/archive/2013/03/12/2956046.html 最近有项目用到JNDI,为了方便
在左边的菜单选择 “资源”->“ jdbc提供程序" 配置jdbc程序资源: 作用域根据自己的需要进行选
以下示例基于Spring: 1、在Mysql中建立Spring数据库,数据库中建立user表 2、在tomcat目录下conf\c
出处:http://gearever.iteye.com JNDI(Java Naming and Directory Interface,Java命名和目录接口)
原理:在DataSource中事先建立多个数据库连接,保存在数据库连接池中。当程序访问数据库时,只用从
tomcat配置JNDI 第一步骤: 配置conf下面的context.xml,具体配置如下: <?xml version="1.0" enco
1.连接池的概念: JNDI解释:JNDI全称JavaNamingandDirectoryInterface(java命名和目录服务)用于定位
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号