这要看你在tomcat的配置文件的设置,("java:comp/env/jdbc/oracle")这个字段是否和tomcat的配置文件里的设置相同

解决方案 »

  1.   

    这个错误提示很明显,ds=(DataSource)ctx.lookup("java:comp/env/jdbc/oracle");
    这句话没有起作用,到这里Connection conn = ds.getConnection();的时候,是null.getConnection(),所以报错
      

  2.   

    连接池的jndi名是否正确
      jndi怎么配置?我列出我的详细配置和错误,大家给意见!我狂散分!我设置了server.xml文件内容:    <ResourceParams name="jdbc/oracle">
          <parameter>
            <name>maxWait</name>
            <value>5000</value>
          </parameter>
          <parameter>
            <name>maxActive</name>
            <value>4</value>
          </parameter>
          <parameter>
            <name>password</name>
            <value>123456</value>
          </parameter>
          <parameter>
            <name>url</name>
            <value>jdbc:oracle:thin:@192.168.0.2:1521:orcl</value>
          </parameter>
          <parameter>
            <name>driverClassName</name>
            <value>oracle.jdbc.driver.OracleDriver</value>
          </parameter>
          <parameter>
            <name>maxIdle</name>
            <value>2</value>
          </parameter>
          <parameter>
            <name>username</name>
            <value>system</value>
          </parameter>
        </ResourceParams>web.xml:
    <resource-ref>
      <description>Oracle Datasource example</description>
      <res-ref-name>jdbc/oracle</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
     </resource-ref>我的一个测试程序内容如下:
    <%@ page import="javax.sql.*"%><%@ page import="javax.naming.*"%>
    <%
       out.print("hellou");
       DataSource ds = null;       InitialContext ctx=new InitialContext();
           ds=(DataSource)ctx.lookup("java:comp/env/jdbc/oracle");
           Connection conn = ds.getConnection();
           Statement stmt = conn.createStatement();
           String strSql = "select * from test2";
           ResultSet rs = stmt.executeQuery(strSql);
           while(rs.next()){
               out.print(rs.getString(1));
               out.print(rs.getString(2));
           }
    %>
    不过运行时提示出错了:
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: Cannot create JDBC driver of class '' for connect URL 'null'
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:825)
    org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:758)
    org.apache.jsp.test_jsp._jspService(test_jsp.java:76)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    root cause org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:780)
    org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
    org.apache.jsp.test_jsp._jspService(test_jsp.java:60)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.
    --------------------------------------------------------------------------------Apache Tomcat/5.0.28有谁知道原因吗?其中提示:Cannot create JDBC driver of class '' for connect URL 'null'是什么原因呢?帮忙分析一下!!谢谢!
      

  3.   

    连接池的classname 没有配置好。
      

  4.   

    还有,把ds=(DataSource)ctx.lookup("java:comp/env/jdbc/oracle");修改成:
    ds=(DataSource)ctx.lookup("java:comp/env/jdbc/oracle123");提示:
    Name oracle123 is not bound in this Context连接池配置没有错误的吧。
      

  5.   

    从上楼可以看出web.xml没有问题,从这里:Cannot create JDBC driver of class '' for connect URL 'null'可以看出读server.xml时出了问题以致url==null。可能是你配置server.xml时候出了点小错误,比如说删除了某个</context>,</parametr>之类的东西。建议解决办法:拷贝一个全新的server.xml重新配置一次
      

  6.   

    谢谢各位了,我从网上找资料,又重装了N次tomcat 终于搞定了。谢谢大家,结贴,花了偶500分就搞定一个这样的东东,两天时间啊,汗!!