`
liaoliu51
  • 浏览: 20427 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

在TOMCAT5.0下的JNDI配置

阅读更多


在TOMCAT5.0下的JNDI配置记实

       -------开发环境:TOMCAT5.0+MS SQL SERVER2000+JDK1.4

一.什么是JNDI:

       Java Naming and Directory Interface(名字与目录服务).如果你自己建过数据库连接池,就会深刻体会到一个优秀的专门用来处理这个问题的方案的价值所在了。JNDI是 J2EE中一个很重要的标准,通常我们是在EJB编程中用到。通过JNDI可以实现池操作。

二.配置前环境要求:
  
   1.安装有JDK1.4、TOMCAT5.0、MS SQL SERVER2000

   2.安装 Microsoft SQL Server 2000 Driver for JDBC (该项的配置过程是:将其lib下的msutil.jar、mssqlserver.jar和msbase.jar文件放到 tomcat/common/lib下,然后设置相应的classpath即可)

   3.有jtds.jar,并将它放在$TOMCAT5.0_HOME/common/lib目录下(只能是这里)。使用它是因为Microsoft公司的Java SQL Server驱动程序不支持二次查询,目前使用的是jtds-0.6.jar

   4.所需要的jar文件:commons-pool.jar, commons-dbcp.jar(后面介绍如何用)


三.JNDI配置过程:


   1.启动Tomcat,打开IE(在地址栏内输入http://localhost:8080/admin )进入Tomcat的管理界面 ;

   2.进入Data Sources 项 ,在右上角的下拉菜单中选择Create New Data Source ,在其下边的输入框中输入需要的配置信息:

         JNDI Name:jdbc/XXX(XXX自己命名,jdbc/XXX为建立的jndi实体名称)

         Data Source URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName(目标数据源设置)

         JDBC Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver 即使用的数据库驱动程序

         User Name: 连接数据库的用户名

         Password: 数据库密码

         Max. Active Connections: 最大连接数

         Max. Idle Connections: 是最大的空闲连接数

         Max. Wait for Connection: 最大等待连接数

   3.如果要部署的是个WEB应用程序,则将该应用程序放在 $TOMCAT_HOME/webapps目录下,有两种方式可以引用我们所配置的JNDI数据源

     (1)[这种方法可以进行多个项目的建设和发布]
           可以在TOMCAT_HOME/conf/Catalina/localhost下新建XXX.xml文件,XXX为所发布的WEB应用程序的名字,如我所发布的WEB应用程序是JndiTest,则.xml文件命名为JndiTest.xml,该文件内容为:

<?xml version='1.0' encoding='utf-8'?>

           <Context debug="1" docBase="$Tomcat 5.0_Home/webapps/JndiTest" path="/JndiTest" reloadable="true" workDir="work\Catalina\localhost\JndiTest">

           <Resource name="jdbc/test" type="javax.sql.DataSource"/>

           <ResourceParams name="jdbc/test">

            <parameter>

               <name>factory</name>

               <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

            </parameter>

            <parameter>

               <name>password</name>

               <value>DataBasePassword</value>

            </parameter>

            <parameter>

               <name>maxActive</name>

               <value>4</value>

            </parameter>

            <parameter>

               <name>maxWait</name>

               <value>5000</value>

            </parameter>

            <parameter>

               <name>url</name>

               <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName</value>

</parameter>

            <parameter>

               <name>driverClassName</name>

               <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

            </parameter>

            <parameter>

               <name>username</name>

               <value>DataBaseUserName</value>

            </parameter>

            <parameter>

               <name>maxIdle</name>

               <value>2</value>

            </parameter>

           </ResourceParams>

           </Context>

     (2)上面的方法只能实现一个项目,建议熟练了以后用(1)中的方法
          为了避免每个WEB应用程序都创建XXX.xml文件,可以修改TOMCAT_HOME/conf下的server.xml文件,修改如下:

          在<Host></Host>之间加入:

          <Context path="/JndiTest" docBase="$Tomcat 5.0_Home/webapps/JndiTest" debug="1" reloadable="true">

             <Resource name="jdbc/test" type="javax.sql.DataSource"/>

             <ResourceParams name="jdbc/test">

                <parameter>

                   <name>url</name>

                   <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ObjectDataBaseName</value>

</parameter>

                <parameter>

                   <name>driverClassName</name>

                   <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

                </parameter>

                <parameter>

                   <name>maxWait</name>

                   <value>5000</value>

                </parameter>

                <parameter>

                   <name>maxActive</name>

                   <value>4</value>

                </parameter>

                <parameter>

                   <name>password</name>

                   <value>DataBasePassword</value>

                </parameter>

                <parameter>

                   <name>maxIdle</name>

                   <value>2</value>

</parameter>

                <parameter>

                   <name>username</name>

                   <value>DataBaseUserName</value>

                </parameter>

                <parameter>

                   <name>factory</name>

                   <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

                </parameter>

          </ResourceParams>

          </Context>

     (3)在相应的web.xml里加入
          <resource-ref>
             <description>SqlServer Datasource example</description>
             <res-ref-name>jdbc/SqlServerDB</res-ref-name>
             <res-type>javax.sql.DataSource</res-type>
             <res-auth>Container</res-auth>
          </resource-ref>

四.测试:
 
   以上工作都完成后,便可进行测试。首先用普通的jsp页面测试不进行数据库操作时的情况,无误后进行数据库操作测试。

  (1)新建一数据源test,含表T_test,并存如数据

  (2)在项目的lib文件下部署commons-pool.jar, commons-dbcp.jar
  
  (3)如下为jsp测试页面代码

           <%@ page contentType="text/html;charset=gb2312"%>

           <%@ page import="java.sql.*"%>

<%@ page import="javax.sql.*"%>

           <%@ page import="javax.naming.*"%>

           <html>

             <body>

               <%  Context ctx = new InitialContext();

                   Connection conn=null;

                   ctx = new InitialContext();

                   DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/test");

                   conn = ds.getConnection();

                   Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);

                   String sql="select * from T_Test";

                   ResultSet rs=stmt.executeQuery(sql);
               %>
             
               <%  while(rs.next()) {

                   out.println(rs.getString(1));

                   out.println(rs.getString(2));

                   out.println(rs.getString(3));



                   }
               %>

               <% out.print("数据库操作成功!");

                  rs.close();

                  stmt.close();

                  conn.close();

               %>

             </body>

           </html>

(转)http://yxk67.iteye.com/blog/93856

分享到:
评论

相关推荐

    tomcat5.0和tomcat5.5.12配置连接池的异同

    讲述tomcat5.0和tomcat5.5.12配置连接池(JNDI)的不同配置方法

    Tomcat中JNDI原理

    简单我tomcat5.0中的JNDI应用

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

    本程序自动判断Tomcat版本,兼容tomcat 5.0、5.5、6.0等版本, 根据项目名自动生成 JNDI 配置文件,使程序员从手动配置JNDI数据源中解脱出来。 使用说明: 1、把“TomcatJNDI.war”文件放入 tomcat 的 webapps ...

    J2EE JNDI配置原理详解 JBOSS安装配置 Maven入门 Ant使用入门

    1.17 JBoss 5.0 安装与配置详解 1.18 JBOSS安装配置 1.19 Oracle,MySql,SQL server分页 1.20 Jboss下的第一个EJB程序 1.21 JNDI 1.22 JNDI配置原理详解 1.23 JSF+Seam框架学习心得 1.24 java jdbc驱动的四...

    tomcat-redis-session-8.5.5.0

    默认情况下,RedisManager通过JNDI查找“pool / jedis”。您可以通过添加属性“jedisJndiName”来覆盖此方法。 “ ru.zinin.redis.session.RedisManager ” jedisJndiName = “ custom / jndi / path ” /&gt; 嵌入式...

    JSP高级编程

    本书为了适应大多数读者的情况,使用了Windows操作系统作为例子,具体的试验平台如下: Windows 2000Advanced Server Apachel.3.14 Intemetln允rmation Server 5.0 Tomcat 3.1 J2SDKEE l.2 BEA Wiblogic 5.1 除了...

    Spring.3.x企业应用开发实战(完整版).part2

    7.10.3 在Tomcat下的配置 7.10.4 在其他Web应用服务器下的配置 7.11 小结 第3篇 数据访问 第8章 Spring对DAO的支持 8.1 Spring的DAO理念 8.2 统一的异常体系 8.2.1 Spring的DAO异常体系 8.2.2 JDBC的异常转换器 ...

    Spring3.x企业应用开发实战(完整版) part1

    7.10.3 在Tomcat下的配置 7.10.4 在其他Web应用服务器下的配置 7.11 小结 第3篇 数据访问 第8章 Spring对DAO的支持 8.1 Spring的DAO理念 8.2 统一的异常体系 8.2.1 Spring的DAO异常体系 8.2.2 JDBC的异常转换器 ...

    JSP2.0技术手册pdf(带示例源码).zip

    12-1 Tomcat 5.0 的介绍 12-2 JSP 开发工具介绍 12-3 Eclipse 简介与安装 12-4 使用 Eclipse 开发 Hello World 12-5 使用 Eclipse 开发 Web Application 12-6 使用 Eclipse 来开发 Web Application(2) 第十三章 SQL...

    Hibernate3的帮助文档

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2...

    hibernate 框架详解

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class ...

    最全Hibernate 参考文档

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. 架构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 ...

    hibernate3.04中文文档.chm

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class ...

    Hibernate教程

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. Hibernate入门 2.1. 前言 2.2. 第一部分 - 第一个Hibernate程序 2.2.1. 第一个class 2.2.2...

    Hibernate3+中文参考文档

    1. 在Tomcat中快速上手 1.1. 开始Hibernate之旅 1.2. 第一个持久化类 1.3. 映射cat 1.4. 与Cat同乐 1.5. 结语 2. 架构(Architecture) 2.1. 概况(Overview) 2.2. 实例状态 2.3. JMX整合 2.4. 对JCA的支持 3. 配置 ...

Global site tag (gtag.js) - Google Analytics