Context ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/pdb");
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();ResultSet rst = null;
String sql=null;
sql="select * from XZQH";
rst=stmt.executeQuery(sql);那行是79行,看看哪个是null,是ds,conn还是stmt??

解决方案 »

  1.   

    我测了一下,是ds 为null,怎么解决?
      

  2.   

    那就是你的server.xml配置的有问题
    server.xml里面有
    <ResourceParams name="jdbc/pdb"> 
    吗?
      

  3.   

    这是server.xml里的配置,请帮忙诊断,谢谢 <!-- Tomcat Root Context -->
            <Context path="/pstat" docBase="pstat" debug="0">          
               <Resource name="jdbc/pdb" auth="Container"  type="javax.sql.DataSource"/>       
                <ResourceParams name="jdbc/pdb">
                 <parameter>  
                   <name>user</name>
                   <value>patent</value>
                 </parameter>
                 <parameter>
                   <name>password</name>
                   <value>patent</value>
                 </parameter>
                 <parameter>
                  <name>maxActive</name>
                  <value>100</value>
                 </parameter>
                <parameter>
                  <name>maxWait</name>
                  <value>5000</value>
                </parameter>
                 <parameter>
                   <name>driverClassName</name>
                   <value>oracle.jdbc.driver.OracleDriver</value>
                 </parameter>
                 <parameter>
                   <name>driverName</name>
                   <value>jdbc:oracle:thin:@192.168.3.30:1521:o8i</value>
                 </parameter>
                </ResourceParams>
              </Context>
      

  4.   

    改成这样
    <!-- Tomcat Root Context --> 
    <Context path="/pstat" docBase="pstat" debug="0"> 
    <Resource name="jdbc/pdb" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name="jdbc/pdb"> 
    <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.3.30:1521:o8i</value> 
    </parameter> 
    <parameter> 
    <name>username</name> 
    <value>patent</value> 
    </parameter> 
    <parameter> 
    <name>password</name> 
    <value>patent</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>
      

  5.   

    @ DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/pdb");web.xml
    <resource-ref>
            <description>hiber example</description>
    @       <res-ref-name>jdbc/pdb</res-ref-name>
            <res-type>javax.sql.DataSource</res-type>
            <res-auth>Container</res-auth>
    </resource-ref>
    server.xml
    <Context path="/pstat" docBase="pstat" debug="0"> 
    <Resource name="jdbc/pdb" auth="Container" type="javax.sql.DataSource"/>
    @<ResourceParams name="jdbc/pdb"> 
    ....以上标@处 naming 是否一致?!
      

  6.   

    to cricketlj(蟋蟀) :我用你的试了,但报了两个错javax.servlet.ServletException: Cannot create resource instance
    at org.apache.jasper.runtime.PageContextImpl.handlePageException(Unknown Source)
    at org.apache.jsp.test$jsp._jspService(test$jsp.java:105)
    at org.apache.jasper.runtime.HttpJspBase.service(Unknown Source)

    javax.naming.NamingException: Cannot create resource instance
    at org.apache.naming.NamingContext.lookup(Unknown Source)
    at org.apache.naming.NamingContext.lookup(Unknown Source)
    at org.apache.naming.NamingContext.lookup(Unknown Source)
    at org.apache.naming.NamingContext.lookup(Unknown Source)
      

  7.   

    Tomcat的数据库连接池配置 http://www.csdn.net/Develop/Read_Article.asp?Id=19013我昨天刚看了,一配就成功!
      

  8.   

    Context ctx = new InitialContext();
    System.out.println("1111111111111");
    DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/pdb");
    System.out.println("2222222222222");
    Connection conn = ds.getConnection();
    System.out.println("3333333333333");
    Statement stmt = conn.createStatement();
    System.out.println("4444444444444");
    ResultSet rst = null;
    String sql=null;
    sql="select * from XZQH";
    rst=stmt.executeQuery(sql);
    System.out.println("5555555555555");看看能打到哪?