`
清泉风影
  • 浏览: 108054 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

eclipse+mysql+tomcat配置JNDI

阅读更多
 

配置环境:Tomcat5.5MySQL4.1 mysql-connector-java-<st1:chsdate isrocdate="False" w:st="on" year="1899" day="30" islunardate="False" month="12">5.0.0</st1:chsdate>-beta commons-dbcp-1.2.1 JDK1.5以上的东东在网上都能够下到的。<o:p></o:p>

然后在D:\Tomcat5.5\webapps\新建目录DBtest文件夹,DBtest下建这样几个目录:WEB-INFMETA-INF,在WEB-INF下创建两个文件夹和两个文件分别为classeslibweb.xmlTest.jsp,在META-INF下创建context.xml(为什么要创建这个文件我也不太清楚<v:shapetype id="_x0000_t75" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" filled="f" stroked="f" coordsize="21600,21600" o:spt="75"> <v:stroke joinstyle="miter"></v:stroke><v:formulas><v:f eqn="if lineDrawn pixelLineWidth 0"></v:f><v:f eqn="sum @0 1 0"></v:f><v:f eqn="sum 0 0 @1"></v:f><v:f eqn="prod @2 1 2"></v:f><v:f eqn="prod @3 21600 pixelWidth"></v:f><v:f eqn="prod @3 21600 pixelHeight"></v:f><v:f eqn="sum @0 0 1"></v:f><v:f eqn="prod @6 1 2"></v:f><v:f eqn="prod @7 21600 pixelWidth"></v:f><v:f eqn="sum @8 21600 0"></v:f><v:f eqn="prod @7 21600 pixelHeight"></v:f><v:f eqn="sum @10 21600 0"></v:f></v:formulas><v:path o:connecttype="rect" o:extrusionok="f" gradientshapeok="t"></v:path><o:lock aspectratio="t" v:ext="edit"></o:lock></v:shapetype><v:shape id="_x0000_i1025" style="WIDTH: 14.25pt; HEIGHT: 14.25pt" alt="" type="#_x0000_t75"><v:imagedata src="file:///C:\DOCUME~1\TEA~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" o:href="Tomcat5_5配置MySQL数据库连接池%20%5b和讯博客%5d.files/emembarrassed.gif"></v:imagedata></v:shape>,哪位高手知道还请多指教)<o:p></o:p>

接下来就要把JDBC驱动程序mysql-connector-java-<st1:chsdate isrocdate="False" w:st="on" year="1899" day="30" islunardate="False" month="12">5.0.0</st1:chsdate>-betacommons-dbcp-1.2.1解压,分别将解压后的.jar文件分别复制到D:\Tomcat5.5\common\lib下,以上工作做完就可以进行连接池的配置了。<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

1、配置D:\Tomcat 5.5\conf\server.xmlserver.xml中的<globalnamingresources></globalnamingresources>中添加如下配置信息:<o:p></o:p>

<resource name="Test"></resource>        type="javax.sql.DataSource"
        driverClassName="com.mysql.jdbc.Driver"
        password="yang" 
        maxIdle="2"
        maxWait="5000"
        username="root"
        url="jdbc:mysql://localhost:3306/math"
        maxActive="4"/><o:p></o:p>

注:name是连接池的名字可任取,type,是数据源的类型,driverClassName是驱动程序的类名好像得这么写,url是数据库的路径math为数据库名。<o:p></o:p>

<o:p> </o:p>

<o:p> </o:p>

2、配置D:\Tomcat 5.5\webapps\DBtest\WEB-INF\web.xml<web-app></web-app>中加入如入信息<o:p></o:p>

 <resource-ref></resource-ref>
     <description></description>DB Connection
     <res-ref-name></res-ref-name>Test
     <res-type></res-type>javax.sql.DataSource
     <res-auth></res-auth>Container
 <o:p></o:p>

注:其中的res-ref-name必须和前面的连接池名相同。<o:p></o:p>

<o:p> </o:p>

3、配置D:\Tomcat 5.5\webapps\DBtest\META-INF\context.xml全部内容如下<o:p></o:p>

<context path="/DBTest" docbase="DBTest"></context>         debug="5"
         reloadable="true"
         crossContext="true">
        
         <resourcelink type="javax.sql.DataSourcer" name="Test" global="Test"></resourcelink>
        
<o:p></o:p>

注:path是工作区的路径,ResourceLink nameglobal好像都得和前面的连接池的名字相同,这里的global有什么用我也不太清楚啦,不好意思,嘻嘻!!<o:p></o:p>

<o:p> </o:p>

<o:p>
java 代码
  1. package app;   
  2.   
  3.     
  4.   
  5. import java.sql.*;   
  6.   
  7. import javax.naming.*;   
  8.   
  9. import javax.sql.DataSource;   
  10.   
  11. /*  
  12.  
  13. public class dbManager  
  14.  
  15. {  
  16.  
  17.        public static synchronized Connection getConnection() throws Exception  
  18.  
  19.        {  
  20.  
  21.               try  
  22.  
  23.               {  
  24.  
  25.                      Context initctx = new javax.naming.InitialContext();  
  26.  
  27.                      Context envctx = (Context)initctx.lookup("java:comp/env");  
  28.  
  29.                      DataSource ds = (DataSource)envctx.lookup("jdbc/Test");  
  30.  
  31.                      return ds.getConnection();  
  32.  
  33.               }  
  34.  
  35.               catch (Exception ex)  
  36.  
  37.               {  
  38.  
  39.                      throw ex;  
  40.  
  41.               }  
  42.  
  43.        }        
  44.  
  45. }  
  46.  
  47. */  
  48.   
  49. import javax.naming.Context;   
  50.   
  51. import javax.naming.InitialContext;   
  52.   
  53. import javax.sql.DataSource;   
  54.   
  55. public class dbManager    
  56.   
  57. {   
  58.   
  59.   final static private boolean VERBOSE = true//打印控制台控制   
  60.   
  61.   //static Logger logger = Logger.getLogger(dbManager.class.getName());   
  62.   
  63.   private Context initCtx = null;   
  64.   
  65.   private Context ctx = null;   
  66.   
  67.   private DataSource ds = null;   
  68.   
  69.   private long timeout = 5000;   
  70.   
  71.   public dbManager()    
  72.   
  73.   {   
  74.   
  75.          try    
  76.   
  77.          {   
  78.   
  79.                 initCtx = new InitialContext();   
  80.   
  81.   //init context,read config web.xml   
  82.   
  83.                 if (initCtx == null)    
  84.   
  85.                 {   
  86.   
  87.                        throw new Exception("Initial Failed!");    
  88.   
  89.                 }   
  90.   
  91.                 ctx = (Context) initCtx.lookup("java:comp/env");   
  92.   
  93.   //find "jdbc/SqlServerDB" object  this configruation in the SERVER.XML of Tomcat   
  94.   
  95.                 if (ctx != null)    
  96.   
  97.                 {             
  98.   
  99.                        ds = (DataSource) ctx.lookup("jdbc/Test");                 
  100.   
  101.                 }   
  102.   
  103.                 if (ds == null)    
  104.   
  105.                 {      
  106.   
  107.                        throw new Exception("Look up DataSource Failed!");           
  108.   
  109.                 }   
  110.   
  111.              }   
  112.   
  113.               catch (Exception e)    
  114.   
  115.               {   
  116.   
  117.                  
  118.   
  119.                      log(e, "Can’t get the Context!");   
  120.   
  121.                  
  122.   
  123.               }   
  124.   
  125.   }   
  126.   
  127.         public synchronized Connection getConnection() {   
  128.   
  129.        //get connection and set to delay time   
  130.   
  131.        long startTime = new java.util.Date().getTime();   
  132.   
  133.        Connection con = null;   
  134.   
  135.        while (con == null) {   
  136.   
  137.          con = newConnection();   
  138.   
  139.          if (con != null) {   
  140.   
  141.            //log("Create New Connection!");   
  142.   
  143.            break;   
  144.   
  145.          }      
  146.   
  147.          try {   
  148.   
  149.            log("连接超时,重新连接,等待" + timeout + "ms");   
  150.   
  151.            wait(timeout);   
  152.   
  153.          }   
  154.   
  155.          catch (InterruptedException e) {   
  156.   
  157.            log(e, "连接超时!");   
  158.   
  159.          }   
  160.   
  161.          if ( (new java.util.Date().getTime() - startTime) >= timeout) {   
  162.   
  163.            log("Connection timeout!");   
  164.   
  165.            break;   
  166.   
  167.          }   
  168.   
  169.        }   
  170.   
  171.        return con;   
  172.   
  173.        }   
  174.   
  175.        private Connection newConnection() {   
  176.   
  177.        Connection con = null;   
  178.   
  179.        try {   
  180.   
  181.          con = ds.getConnection();   
  182.   
  183.          if (con == null) {   
  184.   
  185.            throw new Exception("Create Connection Failed!");   
  186.   
  187.          }   
  188.   
  189.        }   
  190.   
  191.        catch (Exception e) {   
  192.   
  193.          log("Create Connection Failed!");   
  194.   
  195.          System.out.println(e.getMessage());   
  196.   
  197.        }   
  198.   
  199.        return con;   
  200.   
  201.        }   
  202.   
  203.        public synchronized void freeConnection(Connection conn,   
  204.   
  205.                            Statement stmt,   
  206.   
  207.                            PreparedStatement pstmt) {   
  208.   
  209.        try {   
  210.   
  211.        //close Statement   
  212.   
  213.        if (stmt != null) {   
  214.   
  215.          stmt.close();   
  216.   
  217.          stmt = null;   
  218.   
  219.          //log("Close Statement......");   
  220.   
  221.        }   
  222.   
  223.        //close  PreparedStatement   
  224.   
  225.        if (pstmt != null) {   
  226.   
  227.          pstmt.close();   
  228.   
  229.          pstmt = null;   
  230.   
  231.          //log("Close PreparedStatement......");   
  232.   
  233.        }   
  234.   
  235.        }   
  236.   
  237.        catch (Exception e) {   
  238.   
  239.        System.out.println(e.getMessage());   
  240.   
  241.        }   
  242.   
  243.        try {   
  244.   
  245.        //close Connection   
  246.   
  247.        if (conn != null) {   
  248.   
  249.          conn.close();   
  250.   
  251.          conn = null;   
  252.   
  253.          //log("Close Connection......");   
  254.   
  255.        }   
  256.   
  257.        }   
  258.   
  259.        catch (SQLException e) {   
  260.   
  261.        log(e, "释放资源出错!");   
  262.   
  263.        }   
  264.   
  265.        }   
  266.   
  267. /************************************  
  268.  
  269. * write log file.  
  270.  
  271. * @param s String  
  272.  
  273. ************************************/  
  274.   
  275.        private void log(String s)    
  276.   
  277.        {   
  278.   
  279.               if (VERBOSE)    
  280.   
  281.               {   
  282.   
  283.                      System.out.println(new java.util.Date() + ":" + s);   
  284.   
  285.               //logger.info(new java.util.Date()+s);   
  286.   
  287.               }   
  288.   
  289.        }   
  290.   
  291.        private void log(Throwable e, String msg)    
  292.   
  293.        {         
  294.   
  295.               System.out.println(new java.util.Date() + ": " + msg);   
  296.   
  297.        }   
  298.   
  299. }   
  300.   
  301.     
  302.   

 

</o:p>
  • triman.rar (1007.4 KB)
  • 描述: eclipse+mysql+tomcat配置JNDI实现例子
  • 下载次数: 130
分享到:
评论
2 楼 like1988 2012-01-05  
谢谢分享!!!
1 楼 linxuewei 2007-06-20  
正需要

相关推荐

    SpringMVC+JNDI+Tomcat配置数据源

    ### SpringMVC+JNDI+Tomcat配置数据源 #### 一、简介 在Java Web开发中,数据源(DataSource)是管理数据库连接的重要组件。SpringMVC框架结合Java Naming and Directory Interface (JNDI) 和Apache Tomcat服务器...

    Tomcat5.5.12+mysql5.0+Eclipse连接池配置.pdf

    ### Tomcat5.5.12 + MySQL5.0 + Eclipse 连接池配置详解 #### 一、Tomcat5.5.12中的Admin模块配置 Tomcat5.5.12作为一款广泛使用的Java应用服务器,在部署与管理Web应用方面提供了强大的支持。对于新手而言,了解...

    Tomcat5.5.12 + mysql5.0 +Eclipse连接池配置.pdf

    ### Tomcat5.5.12 + MySQL5.0 + Eclipse 连接池配置详解 #### 一、Tomcat5.5.12 Admin模块配置 **背景介绍**: 随着Tomcat版本的发展,Admin模块不再作为默认内置的功能,用户需要自行进行安装与配置。对于初次...

    eclipse3.2.2 + MyEclipse5.5 + Tomcat5.5.27 配置数据库连接池

    完成以上步骤后,你的Eclipse + MyEclipse + Tomcat环境就已经配置好了一个基于MySQL的数据库连接池。当你的Web应用启动时,它可以通过JNDI查找找到名为`jdbc/mysql`的数据源,从而实现与数据库的连接。请注意,这个...

    用dbcp连接池,mysql数据库,在tomcat服务器下,通过hibernate配置jndi数据源.doc

    11. **配置过程**:配置数据源包括准备环境(如安装Tomcat、Eclipse、MySQL、驱动等)、放置必要的库文件、创建数据库和表,以及在Tomcat的XML配置文件中定义数据源。 12. **配置位置**:在Tomcat中,数据源可以在...

    Tomcat6.0+MyEclipse6.0+mysql5.0数据库连接池配置!.pdf

    整个配置过程需要将MySQL的JDBC驱动(即mysql-connector-java-x.x.xx-bin.jar)放置在Tomcat的`lib`目录下,这样Tomcat服务器在启动时能够加载驱动并使用它来创建与MySQL数据库的连接。 在进行数据库连接池配置时,...

    Tomcat中配置数据源JNDI

    ### Tomcat中配置数据源JNDI #### 知识点一:理解JNDI与数据源的概念 - **JNDI(Java Naming and Directory Interface)**:是一种用于查找和定位远程对象的服务接口,它是Java API的一部分,允许开发人员通过名字...

    Eclipse里配置Ant 组织的Project(3) -- E中配置Tomcat的JNDI

    本文将详细讲解如何在Eclipse中配置Ant,以及如何结合Tomcat服务器来设置JNDI(Java Naming and Directory Interface)资源。 首先,我们需要了解Ant。Ant是Apache软件基金会开发的一个开源构建工具,它使用XML来...

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

    1.8 Tomcat5启动流程与配置详解 1.9 HttpServlet详解 1.10 Ant使用入门 1.11 Maven Ant之间的比较 1.12 详解MANIFEST.MF文件 1.13 Maven入门--概念与实例 1.14 Subversion 1.15 jar war ear区别 1.16 如何在...

    java-tomcat7-jndi-mysql-oracle-jdbc:访问Tomcat 7中配置的数据源

    使用 JNDI 示例访问 Tomcat7 数据源描述:访问 Tomcat 7 中配置的两个数据源(Oracle 和 MySQL)的 Web 应用程序添加一名作者技术:Java、Tomcat 7、JDBC 摘要:访问Tomcat 7中配置的数据源的Web应用程序它是什么?...

    Eclipse配合Resin开发web,附加mysql数据库连接池配置设置整合与测试.docx

    ### Eclipse配合Resin开发Web应用及MySQL数据库连接池配置整合与测试 #### 一、为何选择Eclipse 在Java开发领域,Eclipse是一款备受推崇的集成开发环境(IDE)。对于那些从.NET平台转战Java的新手开发者而言,寻找一...

    Eclipse开发环境的搭建和配置

    【Eclipse开发环境的搭建和配置】 在进行Java或J2EE应用程序开发时,一个高效且功能齐全的集成开发环境(IDE)是必不可少的。Eclipse作为一款强大的开源IDE,深受开发者喜爱。以下将详细介绍如何搭建和配置Eclipse...

    jboss安装与jndi配置.doc

    对于基于Tomcat的Web应用,配置流程基本类似,只需在相应地方选择Tomcat并配置路径及JDK。 最后,当发布Web项目时,建议先在Eclipse中启动JBoss,以避免可能出现的配置错误。例如,需要将JBOSS_HOME\docs\examples\...

    使用连接池技术时的配置

    在本文中,我们将讨论使用连接池技术时的配置,特别是关于 Tomcat、MySQL 和 Eclipse 的数据库连接池配置。 一、开发工具介绍 为了配置连接池,我们需要使用以下开发工具: * Tomcat 5.5.2 作为我们的应用服务器 ...

    数据库连接配置

    数据库连接配置是开发Java Web应用时的一个重要环节,它涉及到如何让Eclipse这样的集成开发环境(IDE)与数据库建立通信,以及如何在Tomcat服务器中正确配置这些连接。本教程将详细阐述这一过程,帮助开发者顺利进行...

    eclipse birt 常见问题及解决方法

    在BIRT报表设计中,选择新建数据源时,可以选择JNDI方式配置,其中`DriverClass`和`JNDIURL`是必填项。例如: - `DriverClass`: `com.mysql.jdbc.Driver` - `JNDIURL`: `java:comp/env/jdbc/report` #### 二、...

Global site tag (gtag.js) - Google Analytics