Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
ds = (DataSource) ctx.lookup("jdbc/example");
改成:
Context initCtx = new InitialContext();
ds = (DataSource)initCtx.lookup("jdbc:comp/env/jdbc/example");

解决方案 »

  1.   

    配置和代码都没有问题
    那你的数据库驱动包有没有放在
    tomcat/common/lib里面?使用数据源,必须把许动放在这里
      

  2.   

    to  nimifeng(现在只想学点东西) 
    我按你说的改了但是又出现问题:
    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:358)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    root cause java.lang.NullPointerException
    com.DBConn.query(DBConn.java:57)
    org.apache.jsp.test_jsp._jspService(test_jsp.java:75)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
    note The full stack trace of the root cause is available in the Tomcat logs.
    --------------------------------------------------------------------------------另外我的JDBC的三个驱动文件放在TOMCAT/COMMON/LIB下面了,调试不成功后,我又在wanchu/web-inf/lib下面放了一份,还是不行,期待大家的帮助
      

  3.   

    连接池在web.xml里配呀,你怎么在这里了.<<jsp web编程指南>>里讲过.
      

  4.   

    test.jsp 编译完的文件的98行处,
    得到了空指针异常,有可能得到空连接!
      

  5.   

    java.lang.NullPointerException
    com.DBConn.query(DBConn.java:57):这一方法中判断一下getConnection()是不是为空..
      

  6.   

    我用我的连接数据库的JAVABEAN换成普通的连接方式(下面是代码)可以查出数据库中的数据,证明还是在配置哪个地方出错了
    package com;
    import java.sql.*;
    import java.io.*;
    //import java.util.*;
    public class myconn {
        private String containerCharSet = "ISO-8859-1";
    Connection conn=null;
    ResultSet rs=null;
    Statement stmt=null;
    String connDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
    String user="test"; 
    String password="test"; 
    public myconn(){
    try{
    Class.forName(connDriver).newInstance(); 
    }
    catch(Exception e){
    System.out.println(e.getMessage());
    }
    }
    public void open(){
    try{
    conn= DriverManager.getConnection(url,user,password);
    }
    catch(SQLException e){
    e.printStackTrace();
    }
    }
    public ResultSet getResultSet(String sql){
    rs=null;
    open();
    try{
    stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); 
    rs=stmt.executeQuery(sql);
    }
    catch(SQLException ex){
                System.out.println("sql.executeQuery:"+ex.getMessage());
            }
    return rs;
    }
            public void close(){
    try{
    if(conn!=null){
    conn.close();
    }
    if(stmt!=null){
    stmt.close();
    }
    if(rs!=null){
    rs.close();
    }
    rs=null;
    stmt=null;
    conn=null;
    }
    catch(SQLException ex){
    System.out.println("sql.executeQuery:"+ex.getMessage());
    }
    }
    }TO:回复人: wafeng(彭克) ( ) 信誉:100  2005-04-24 11:01:00  得分: 0  
     
     
       连接池在web.xml里配呀,你怎么在这里了.<<jsp web编程指南>>里讲过.
    我是按照《JSP应用开发详解第二版》,而且很多此论坛的人都是按这种方式啊
      
     
      

  7.   

    我用普通的JDBC调用方式,是成功的。但是用连接池就不行了,还请大家帮忙出发现一下错误!!!!
      

  8.   

    docBase="D:\eclipse\workspace\wanchu\WebRoot"  最好按webapps相对路径走。
    不要放在了webapps之外。
    而且要放在下面的标签内
     <Host name="localhost" debug="0" appBase="webapps">
     </Host>
      

  9.   

    <%@page language="java" import="java.sql.*, com.DBConn   " %>把你的bean类引进来
      

  10.   

    如果你用的Tomcat5.5版本以上,那么这种连接池配置方式是不行的
    建议你改成如下形式,再试试.
    =========================================================================
    <Context path="/MyWebApp" docBase="MyWebApp" debug="0" reloadable="true" crossContext="true">
      <Resource name="jdbc/TestDB" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="super" driverClassName="com.mysql.jdbc.Driver"url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>
       </Context>
    应该就可以了.
      

  11.   

    新版本tomcat的连接池的配置方式和以前不一样了.
      

  12.   

    我没有用到TOMCAT5.5以上,我用的ECLIPSE+TOMCAT5.0.28开发的,所以绝对路径是那样的。
    按刚才上面几位说的改了改发现还是不行啊
    这个问题捆扰我好久了,头都大了,求求高手帮我解决一下!!!
      

  13.   

    同意   jFresH_MaN(TM)
      

  14.   

    1.在<context>中加入useNaming="true" 
    2.把<resource-ref>
          <description>DB Connection</description>
          <res-ref-name>jdbc/example</res-ref-name>
          <res-type>javax.sql.DataSource</res-type>
          <res-auth>Container</res-auth>
      </resource-ref>
    加入conf/web.xml中试试
      

  15.   

    TO zhaohb1980() ( ) 信誉:100  2005-04-26 13:25:00  得分: 0   
     
       同意   jFresH_MaN(TM)我已经按照他说的做了,不行啊
    TO  nimifeng(现在只想学点东西) 
    我试了你上面提出的方案,还是同样的错误啊
    你可以把你做的成功的连接池发一份给我吗,谢谢了
      
     
      

  16.   

    我也遇到同样的问题,不过,我遇到的异常是命名和目录服务工厂没有初始化
    javax.naming.NoInitialContextException: Need to specify class name in environmen
    t or system property, or as an applet parameter, or in an application resource f
    ile:  java.naming.factory.initial
            at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:6
    40)
            at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243
    )
            at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.jav
    a:280)
            at javax.naming.InitialContext.lookup(InitialContext.java:347)
            at DBCommon.DB.getCachedConnection(DB.java:58)
            at DBCommon.DB.main(DB.java:127)
    java.lang.NullPointerException
            at DBCommon.DB.main(DB.java:128)
    Press any key to continue...
      

  17.   

    兄弟,ResultSet是不能在bean与jsp之间传递的,或者在后台把数据库取出来赋给vector,或数组,或者都在前台取,书上没说这个,如果有这个功能,咱们基本不用vector或itertor等数组了
      

  18.   

    终于调出来了,确实ResultSet是不能在bean与jsp之间传递的,不能用BEAN去把封装起来!
      

  19.   

    我的调试成功了,
    但是还是想问一个问题,就是用JDBC的时候可以完成ResultSet在bean与jsp之间传递的封装,为什么在连接池就不可以了呢???
      

  20.   

    HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: /test.jsp(2,4) Page directive: can't have multiple occurrences of language
    at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)
    at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:428)
    at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:140)
    at org.apache.jasper.compiler.Validator$PageDirectiveVisitor.visit(Validator.java:141)
    at org.apache.jasper.compiler.Node$PageDirective.accept(Node.java:280)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
    at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:1070)
    at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:1076)
    at org.apache.jasper.compiler.Node$Root.accept(Node.java:232)
    at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:1028)
    at org.apache.jasper.compiler.Validator.validate(Validator.java:581)
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:230)
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:369)
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:473)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:190)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
    at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
    at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
    at java.lang.Thread.run(Thread.java:534)--------------------------------------------------------------------------------Apache Tomcat/4.1.29-LE-jdk14