首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

tomcat5.0 JNDI 配备

2012-11-07 
tomcat5.0 JNDI 配置我看了好多都配不通今天终于配通了,又在一些高手的基础上总结了一次,有什么问题可以找

tomcat5.0 JNDI 配置
我看了好多都配不通   今天终于配通了,又在一些高手的基础上总结了一次,有什么问题可以找我 
  MSN:cnyqiao@hotmail.com 
  
  Tomcat   5.0.25   中配置JNDI 
                          
                          2005-08-29 
                        
          本文主要介绍Tomcat5.0.25   这个版本下数据库连接池的配置,及程序对连接池的JNDI查找,并提供相应测试代码。本人经历了痛苦的调试过程.现将综合一些高人贴子,以最简单的形式给大家说明,希望大家不要骂我呀^_^ 
          
          一   准备工作 
          1   .该文的配置环境:Tomcat5.0.25   +   jdk1.4.2+   MySql   4.1   +   mysql-connector-java-3.0.16-ga-bin.jar   +   Win2000   server. 
          2   .将mysql-connector-java-3.0.16-ga-bin.jar文件COPY到D:\tomcat5\common\lib目录下.可以在这里下载 
  http://dev.mysql.com/downloads/connector/j/3.0.html(3.0.17) 
          3.建表 
  #   Host:   localhost 
  #   Database:   test 
  #   Table:   'test' 
  #   
  CREATE   TABLE   `test`   ( 
      `userid`   int(11)   NOT   NULL   auto_increment, 
      `name`   varchar(100)   NOT   NULL   default   '', 
      `birthday`   datetime   NOT   NULL   default   '0000-00-00   00:00:00', 
      `email`   varchar(100)   NOT   NULL   default   '', 
      PRIMARY   KEY     (`userid`) 
  )   ENGINE=MyISAM   DEFAULT   CHARSET=latin1;   
          
          二   配置工作 
          1   .在D:\tomcat5\conf\tomcat-users.xml中加入以下内容: 
                  <role   rolename="manager"/> 
                  <role   rolename="admin"/> 
                  <user   username="admin"   password="admin"   roles="admin,manager"/> 
          2   .启动Tomcat,打开IE在地址栏内输入http://localhost:8080/admin     输入用户名/密码:admin/admin,进入Tomcat的管理界面;点击右边的Data   Sources   在右上角的下拉菜单中选择Create   New   Data   Source   在下边的输入框中输入需要的配置信息。 
  
  JNDI   Name:jdbc/XXX(XXX为自己所命的名字) 
  
  Data   Source   URL:jdbc:mysql://localhost:3306/test(连接的数据名) 
  
  JDBC   Driver   Class:   org.gjt.mm.mysql.Driver 
  
  User   Name:root连接数据库的用户名   
  
  Password:   xx   数据库密码 
  
  Max.   Active   Connections:   100   最大连接数 
  
  Max.   Idle   Connections:   30   是最大的空闲连接数 
  
  Max.   Wait   for   Connection:   5000   最大等待连接数 
  
          3   .修改   web.xml 
  打开webapps/ROOT/WEB-INF下web.xml,加入如下内容:       
  <resource-ref> 
      <description>MySql   Datasource   example</description> 
      <res-ref-name>jdbc/XXX</res-ref-name>                       //注意这里的<res-ref-name>一定要与JNDI   NAME相同 
      <res-type>javax.sql.DataSource</res-type> 
      <res-auth>Container</res-auth> 
      </resource-ref> 
  
          4   .   我们这里用JSP页面进行测试,以下两段代码放在TOMCAT_HOME/webapps/ROOT/DBTest下边,同时还须修改 TOMCAT_HOME/conf/Catalina/localhost/下的ROOT.xml文件,在 
  <Resource   auth="Container"   description="MySql   Datasource   example"   name="jdbc/xxx"   type="javax.sql.DataSource"/>下边加入: 
  <ResourceLink   global="jdbc/XXX"   name="jdbc/XXX"   type="javax.sql.DataSource"/> 
  来引用所配置的JNDI数据源。同时将<Resource   auth="Container"   description="MySql   Datasource   example"   name="jdbc/xxx"   type="javax.sql.DataSource"/>注释掉 
  
          三   测试代码: 
          1   .UserHanDleDB.jsp 
  <%@   page   language="java"%>   
  <%@   page   import="java.util.*"   %>   
  <%@   page   import="java.sql.*"   %>   
  <%@   page   import="javax.sql.*"   %>   
  <%@   page   import="javax.naming.*"   %>   
  
  <%   
  String   jndi_name="java:comp/env/jdbc/TestDB";   
  String   select_user_sql="select   userid,name,birthday,   email   from   test";   
  String   colnames[][]={{"User   ID","Name","Birth   day","EMail"},   {"userid","name","birthday","email"}};   
  Vector   userSet=new   Vector();   
  Vector   columnSet=new   Vector();   
  
  for(int   i=0;i<colnames[0].length;i++){   
          columnSet.add(colnames[0][i]);   
  }   
  userSet.add(columnSet);   
  
  Context   ctx   =   new   InitialContext();   
  if(ctx   ==   null   )   
          throw   new   Exception("No   Context");   
  
  DataSource   ds   =   (DataSource)ctx.lookup(jndi_name);   
  
  Connection   conn   =   ds.getConnection();   
  
  try   {   
          PreparedStatement   psPreparedStatement=conn.prepareStatement(select_user_sql);   
          ResultSet   resultSet   =   psPreparedStatement.executeQuery();   
          while(resultSet.next()){   
                  columnSet=new   Vector();   
                  for(int   i=0;i<colnames[1].length;i++){   
                          columnSet.add(resultSet.getString(colnames[1][i]));   
                  }   
  userSet.add(columnSet);   
  }   
  }catch(SQLException   e)   {   
          e.printStackTrace();   
  }finally   {   
          conn.close();   
  } 
  %>   
          2   .ViewTable.jsp 
  
  <html>   
  <head>   
  <title>Test   Database   </title>   
  <body   >   
  <%@   include   file="UserHandleDB.jsp"   %>   
  <table   border="1"   >   
  <%   
  for(int   i=0;i<userSet.size();i++){   
  Vector   colSet=(Vector)userSet.get(i);   
  out.print("<tr>");   
  for(int   j=0;j<colSet.size();j++){   
  String   col=(String)colSet.get(j);   
  out.print("<td>"+col+"</td>");   
  }   
  out.print("</tr>");   
  }   
  %>   
  </table>   
  </body>   
  </html>     
  
          3.我的测试结果 
          User   ID   Name                 Birth   day                               EMail   
          1               xxxxxx             0000-00-00   00:00:00           xxxxxxxxxxxxxx   
          2               test                 0000-00-00   00:00:00           xxx@aaa.bb   
          3               test1               0000-00-00   00:00:00           xxx@aaa.bb    

热点排行