`
yxk67
  • 浏览: 5356 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

在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>

 

 

 
分享到:
评论

相关推荐

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

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

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

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

    tomcat配置jndi数据源

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

    tomcat配置JNDI数据源

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

    eclipse+mysql+tomcat配置JNDI

    2. **在Tomcat中配置JNDI数据源**: 在Tomcat的`conf/server.xml`文件中,找到`&lt;GlobalNamingResources&gt;`标签,然后添加一个新的`&lt;Resource&gt;`标签来定义数据源。例如: ```xml type="javax.sql.DataSource" ...

    tomcat配置jndi

    **Tomcat配置JNDI详解** Java Naming and Directory Interface (JNDI) 是Java平台提供的一种标准服务,用于管理和查找应用程序中的资源,如数据源、邮件服务器等。在Tomcat应用服务器中,JNDI被用来注册和查找数据...

    tomcat配置jndi有全局配置和局部配置

    JNDI(Java Naming and Directory Interface,Java命名和目录接口)是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称...本文档主要是tomcat配置jndi有全局配置和局部配置:

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

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

    Tomcat中JNDI原理

    在部署该应用时,管理员可以在Tomcat的配置文件中设置相应的JNDI条目: ```xml type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/mydb" username=...

    tomcat6.0 配置jndi

    【标题】:“Tomcat6.0配置JNDI” 在Java Web开发中,Tomcat作为常用的Servlet容器,经常被用于部署和运行Java EE应用程序。JNDI(Java Naming and Directory Interface)是Java平台的一项服务,它允许应用程序通过...

    tomcat-jndi

    总结来说,Tomcat的JNDI功能提供了强大的资源管理和配置灵活性,通过解耦配置和代码,提高了系统的可扩展性和可维护性。理解并熟练运用Tomcat的JNDI机制,对于开发高质量、高可用性的Java Web应用至关重要。而`...

    Tomcat6配置JNDI出错

    在本文中,我们将深入探讨“Tomcat6配置JNDI出错”这一主题,这是一个常见的问题,很多开发者在搭建和配置Java企业级应用时可能会遇到。 JNDI,全称Java Naming and Directory Interface,是Java平台的一个标准接口...

    JNDI tomcat

    1. **配置Tomcat的JNDI**:在Tomcat的`server.xml`配置文件中,可以通过`GlobalNamingResources`元素定义全局资源,如数据源。这些资源可以在Web应用中通过JNDI查找获取。 2. **应用配置**:在Web应用的`web.xml`中...

    tomcat6中配置JNDI方法

    ### Tomcat6中配置JNDI方法详解 #### 一、引言 在Java Web开发过程中,连接数据库是一项基础而重要的工作。常见的连接方式包括直接使用JDBC(Java Database Connectivity)以及通过JNDI(Java Naming and Directory...

    SpringMVC+JNDI+Tomcat配置数据源

    #### 二、Tomcat配置JNDI的三种方式 ##### 1. 单个应用独享数据源 在Tomcat的`server.xml`中为特定的应用程序配置专用的数据源,这样每个应用程序都有其独立的数据源,不会互相干扰。这种方法简单明了,但是不便于...

    Tomcat6.0 JNDI数据源经典实例

    首先,我们来看配置JNDI数据源的步骤。在Tomcat的`conf/server.xml`文件中,你需要添加一个新的`&lt;Resource&gt;`元素来定义数据源。例如: ```xml &lt;!-- Edit the following lines to configure your data source --&gt; ...

    Tomcat通过JNDI方式连接SqlServer数据库

    使用Tomcat通过JNDI方式连接SqlServer数据库 在本文中,我们将介绍如何使用Tomcat通过JNDI方式连接SqlServer数据库。JNDI(Java Naming and Directory Interface)是一种Java API,用于访问命名和目录服务。在...

Global site tag (gtag.js) - Google Analytics