在Tomcat4.1.x都实验成功。
在Tomcat4.0.x只有SQL Server实验成功。<Resource auth="Container" name="jdbc/DBDeveloper" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/DBDeveloper">
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
  
<!-- SQL Server 2000 -->
<parameter><name>username</name><value>sa</value></parameter>
<parameter><name>password</name><value>enter</value></parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://infor:1433;DatabaseName=infordb</value>
</parameter>  
  
<!-- Oracle8i -->
<!--
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>    
<value>oracle.jdbc.driver.OracleDriver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:oracle:thin:@192.168.0.170:1521:infordb</value>
</parameter>
<parameter>
<name>username</name>
<value>system</value>
</parameter>
<parameter>
<name>password</name>
<value>manager</value>
</parameter>
-->

<!-- DB2 -->
<!--
<parameter>
<name>driverClassName</name>
<value>COM.ibm.db2.jdbc.net.DB2Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:db2://infor/infordb</value>
</parameter>
<parameter>
<name>username</name>
<value>db2admin</value>
</parameter>
<parameter>
<name>password</name>
<value>db2admin</value>
</parameter>
-->
  
</ResourceParams>

解决方案 »

  1.   

    是配置DataSource吗?否则要自己写一个类的
      

  2.   

    tomcat连接池的配置
    tomcat 下编辑server.xml <Context path="/site" docBase="site" debug="0" reloadable="true" >
               <Resource name="jdbc/SQLServerEMSDB" auth="Container"  type="javax.sql.DataSource"/>
                        <ResourceParams name="jdbc/SQLServerEMSDB">
                        <parameter>
                                  <name>user</name>
                            <value>sa</value>
                        </parameter>                    <parameter>
                                <name>sa</name>
                            <value>sa</value>
                        </parameter>
                        <parameter>
                                      <name>driverClassName</name>
                                      <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
                            </parameter>                        <parameter>
                                <name>driverName</name>
                                <value>jdbc:sqlserver://sqlserver:1433;DatabaseName=test;SelectMethod=cursor</value>
                            </parameter>                  </ResourceParams>
              </Context>
    然后在程序中lookup即可
      

  3.   

    是不是只要使用了jndi,就只能是jndi去lookup连接池?
      

  4.   

    我这里这样写怎么无法通过啊,我的代码如下:
        try {
          javax.naming.Context ctx = new javax.naming.InitialContext();
          javax.naming.Context cText = (Context)ctx.lookup("java:/cmp/env");
          ds = (DataSource)cText.lookup("jdbc/engtrade");      conn = ds.getConnection();
          System.out.println("connection database success!");
        }catch(Exception e) {
          e.printStackTrace();
        }
      

  5.   

    我看了看,是下面这个错误:
    怎么是jdbc未绑定?
    javax.naming.NameNotFoundException: Name jdbc is not bound in this Context
            at org.apache.naming.NamingContext.lookup(NamingContext.java:811)
            at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
            at com.foodchina.jdbc.TestDBConnection.init(TestDBConnection.java:34)
            at com.foodchina.jdbc.TestDBConnection.<init>(TestDBConnection.java:27)
            at com.foodchina.jdbc.TestDAO.<init>(TestDAO.java:27)
            at com.foodchina.jdbc.TestManager.searchResultByAuctionId(TestManager.ja
    va:19)
      

  6.   

    最后发现是代码错误,我的代码如下:
        try {
          javax.naming.Context ctx = new javax.naming.InitialContext();
          javax.naming.Context cText = (Context)ctx.lookup("java:/comp/env");
          ds = (DataSource)cText.lookup("jdbc/engtrade");      conn = ds.getConnection();
          System.out.println("connection database success!");
        }catch(Exception e) {
          System.out.println("Connection Exception : "+e);
          e.printStackTrace();
        }
    实际上执行到conn = ds.getConnection();这一句出错了,应该是
    javax.naming.Context cText = (Context)ctx.lookup("java:/comp/env");
    ds = (DataSource)cText.lookup("jdbc/engtrade");
    出错,不知道是我在server.xml里配置的不对还是代码有问题,或者是不是要在web.xml里配置<resource-ref>节点的一些值?另外,不知道哪位大侠能告诉一下,哪里有这些XML文件的DTD文件的说明?到对应的网站上可以当到吗?
      

  7.   

    请把你的server.xml和web.xml贴出来,才好分析