<Context path="/CaseStudy01" docBase="CaseStudy01" debug="0"
 reloadable="true" crossContext="true" cookie="true">
        <Logger className="org.apache.catalina.logger.FileLogger"
                 directory="logs"  prefix="casestudy01.localhost_log." suffix=".txt"
             timestamp="true"/> <Resource name="jdbc/mySQLDB" auth="Container" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/mySQLDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>10</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<!-- MySQL dB username and password for dB connections  -->
<parameter>
<name>username</name>
<value>cs01</value>
</parameter>
<parameter>
<name>password</name>
<value>cs01</value>
</parameter>
<parameter>
   <name>driverClassName</name>
   <value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
  <name>url</name>
  <value>jdbc:mysql://localhost/cs01?autoReconnect=true</value>
</parameter>
</ResourceParams>

</Context>在程序中InitialContext ic = null;
DataSource ds = null;

ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/mySQLDB");

解决方案 »

  1.   

    好兄弟,但是,我现在就是把你在tomcat的server.xml的配置写上一个类了,但是现在关键是不知道在web.xml中怎么配置!
    等待
      

  2.   

    web.xml中不用配置啊,启动tomcat后,jndi是自动加载的,在程序中
    InitialContext ic = null;
    DataSource ds = null;
    try{
    ic = new InitialContext();
    ds = (DataSource)ic.lookup("java:comp/env/jdbc/mySQLDB");
    } catch(NamingException ne){
    throw new Exception("InitialContext取得失敗", ne);
    }

    Connection con = ds.getConnection();
      

  3.   

    比如你的tomcat在d:/tomcat
    你的应用在e:/mysite
    访问路径:http://localhost:8080/mshome
    则需要做如下工作,在d:/tomcat/conf/Catalina/localhost目录下新建mshome.xml
    内容:
    <?xml version='1.0' encoding='utf-8'?>
    <Context docBase="e:/mysite" path="/mshome" privileged="true" reloadable="true">
      <Resource name="ConnPool"
                   auth="Container"
                   type="javax.sql.DataSource"/>
      <ResourceParams name="ConnPool">
        <parameter>
          <name>factory</name>
          <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
        </parameter>
        <!-- Maximum number of dB connections in pool. Make sure you
             configure your mysqld max_connections large enough to handle
             all of your db connections. Set to 0 for no limit.
             -->
        <parameter>
          <name>maxActive</name>
          <value>100</value>
        </parameter>
        <!-- Maximum number of idle dB connections to retain in pool.
             Set to 0 for no limit.
             -->
        <parameter>
          <name>maxIdle</name>
          <value>30</value>
        </parameter>
        <!-- Maximum time to wait for a dB connection to become available
             in ms, in this example 10 seconds. An Exception is thrown if
             this timeout is exceeded.  Set to -1 to wait indefinitely.
             -->
        <parameter>
          <name>maxWait</name>
          <value>10000</value>
        </parameter>
        <!-- MySQL dB username and password for dB connections  -->
        <parameter>
         <name>username</name>
         <value>root</value>
        </parameter>
        <parameter>
         <name>password</name>
         <value></value>
        </parameter>
        <!-- Class name for the old mm.mysql JDBC driver - uncomment this entry and comment next
             if you want to use this driver - we recommend using Connector/J though
        <parameter>
           <name>driverClassName</name>
           <value>org.gjt.mm.mysql.Driver</value>
        </parameter>
         -->
        
        <!-- Class name for the official MySQL Connector/J driver -->
        <parameter>
           <name>driverClassName</name>
           <value>org.gjt.mm.mysql.Driver</value>
           <!--
           <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
           -->
        </parameter>
        
        <!-- The JDBC connection url for connecting to your MySQL dB.
             The autoReconnect=true argument to the url makes sure that the
             mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
             connection.  mysqld by default closes idle connections after 8 hours.
             -->
        <parameter>
          <name>url</name>
          <value>jdbc:mysql://localhost:3306/mshome?autoReconnect=true</value>
          <!--
          <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mshome</value>
          -->
        </parameter>
      </ResourceParams>
    </Context>
    修改web.xml
    增加:
    <resource-ref>
    <res-ref-name>ConnCenter</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    </resource-ref>编写类(注意ConnPool和上面的关系):
    public static synchronized Connection getConnection() throws Exception {
    DataSource ds = null;
    Connection conn = null;
    logger.info("JNDI 连接数据库");
    try {
    Context initCtx = new javax.naming.InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    ds = (DataSource) envCtx.lookup("ConnPool");
    conn = ds.getConnection();
    logger.info("GET sql Connection scuess : conn = " + conn);
    return conn;
    } catch (SQLException ex) {
    logger.error("get sql Connection failure : " + ex.getMessage());
    throw ex;
    } catch (NamingException ex) {
    throw ex;
    }
    }
      

  4.   

    我的问题本来应该是,我有一个空间,但是要有连接池,如果用tomcat的配置,我是不可能实现的,所以....想办法[我没权限配置连接池]..怎么办