http://community.csdn.net/Expert/topic/3150/3150277.xml?temp=6.708926E-02

解决方案 »

  1.   

    我用的jakarta-tomcat-5.0.14
    server.xml  中
             <!-- Tomcat Root Context --> 
             <Context path="" docBase="ROOT" debug="0"> 
             <Resource name="jdbc/testpool" auth="Container" type="javax.sql.DataSource"/> 
             <ResourceParams name="jdbc/testpool">
             <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:@172.16.113.2:1521:NEXS</value> 
            </parameter>         <parameter> 
                 <name>username</name>
                 <value>NEXS</value> 
            </parameter>         <parameter> 
                 <name>password</name> 
                 <value>NEXS</value> 
            </parameter>
            
            <parameter> 
                 <name>maxActive</name>
                 <value>20</value> 
            </parameter>
            
            <parameter> 
                 <name>maxIdle</name>
                 <value>10</value> 
            </parameter>         <parameter> 
                 <name>maxWait</name>
                 <value>-1</value> 
            </parameter>         </ResourceParams> 
            </Context>数据库是 172.16.113.2:1521:NEXS
    用户名 :NEXS
    密码 :NEXS
    数据库是可用的
    但是出现例外信息如下:java.lang.NoClassDefFoundError: javax/sql/DataSource另外:
                 <name>factory</name>
                  <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    中类org.apache.commons.dbcp.BasicDataSourceFactory是哪个包里的class12.jar下有吗?我用的是JBuilder 7 Enterprise,struts架构,引入的JAR包有:classes12.jar,nls_charset12.jar,
    struts.jar,waf.jar,j2ee.jar程序如下:
    try{
    System.out.println("33333333333333");
      Context initCtx = new InitialContext();
        if(initCtx!=null){
           System.out.println("initCtx Ok");
        } else {
            System.out.println("initCtx ERROR");
        }  Context ctx = (Context) initCtx.lookup("java:comp/env");
        if(ctx!=null){
          System.out.println("ctx Ok");
        } else {
          System.out.println("ctx ERROR");
        }
       System.out.println("jdbc = "+ctx.lookup("jdbc/testpool"));  javax.sql.DataSource ds = (javax.sql.DataSource)ctx.lookup("jdbc/testpool");
         if(ds!=null){
           System.out.println("ds Ok");
          } else {
             System.out.println("ds ERROR");
         }  Connection conn = ds.getConnection();
      if(conn!=null) {
        System.out.println("Connection = OK");
      } else {
            System.out.println("Connection = ERROR");
      }
    }catch(Exception e) {
    }ctx 是可以得到的,
    ctx.lookup("jdbc/testpool")不行,能告诉我为啥吗
      

  2.   

    <%@ page contentType="text/html;charset=GBK"%>
            <%@ page import= "java.sql.* "%>
            <%@ page import= "javax.naming.* "%>
            <%
                   try{                      
                              Context initCtx = new InitialContext();
                                  if(initCtx!=null)   {
                                  System.out.println("initCtx---------OK");
                                  } else {
                                  System.out.println("initCtx---------error");
                                  }                      Context ctx = (Context) initCtx.lookup("java:comp/env");
                                 if(ctx!=null)   {
                                      System.out.println("ctx---------OK");
                                      } else {
                                      System.out.println("ctx---------error");
                                      }                     Object obj = (Object) ctx.lookup("jdbc/testpool");    
                           if(obj!=null)   {
                                          System.out.println("obj---------OK");
                                          } else {
                                          System.out.println("obj---------error");
                                          }
                                         
                            javax.sql.DataSource ds = (javax.sql.DataSource)obj;
                                      if(ds!=null)   {
                                      System.out.println("ds---------OK");
                                      } else {
                                      System.out.println("ds---------error");
                                      }                                  Connection conn = ds.getConnection();
                                          if(conn!=null)   {
                               System.out.println("getConnection---------OK");
                                          } else {
                             System.out.println("getConnection---------error");
                                          }
                   }catch(Exception ex){
                          
              ex.printStackTrace();
                    throw new SQLException("cannot           get Connection pool.");
                   }
                   finally {
                   }
            %>
            
    tomcat 后台显示如下:
    initCtx---------OK
    ctx---------OK我认为也是
      Object obj = (Object) ctx.lookup("jdbc/testpool");    
    出了错
    是不是jdbc/testpool没找到?
    各位认为怎样,帮我出主意好吗