web.xml
      <servlet>
             <servlet-name>DbConn</servlet-name>
             <servlet-class>dao.DbConn</servlet-class>
              <init-param>
                    <param-name>dbConnDriver</param-name>
                    <param-value>oracle.jdbc.driver.OracleDriver</param-value>
              </init-param>
              <init-param>
                    <param-name>url</param-name>
                    <param-value>jdbc:oracle:thin:@10.224.3.70:1521:ora9i1</param-value>
               </init-param>
               <init-param>                    
               <param-name>user</param-name>
               <param-value>smis</param-value>
               </init-param>
               <init-param>
               <param-name>password</param-name>
               <param-value>smis</param-value>
               </init-param>
   </servlet>
package dao;import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class DbConn extends HttpServlet{
    private String dbConnDriver = null;
    private String url         = null;
    private String user        = null;
    private String password    = null;
    Connection    conn = null;
    public void getContext(){
     try{
        ServletContext c = getServletConfig().getServletContext();
                 dbConnDriver  =c.getInitParameter("dbConnDriver");
                url           =c.getInitParameter("url");
                user          =c.getInitParameter("user");
                password      =c.getInitParameter("password");             
     }catch (Exception e){System.out.println(e.toString());}
    }
    public void initConnection(){
     getContext();
     try{
            Class.forName(dbConnDriver);
            conn = DriverManager.getConnection(url,user,password);
        }
        catch (Exception e){e.printStackTrace();} 
    }
     public void closeConnection(){
     try{
if(conn!=null){
conn.close();
conn = null;
}
}catch(Exception e){e.printStackTrace();}

    }
}
java.lang.NullPointerException
java.lang.NullPointerException
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:169)
at dao.DbConn.initConnection(DbConn.java:24)

解决方案 »

  1.   

    关键看你是怎么调用initConnection()的
      

  2.   

    package dao;import java.sql.ResultSet;
    import java.util.ArrayList;
    import vo.Login;
    public class LoginDao extends DbConn{
    public ArrayList Login(String dm,String dbrdm){
    ArrayList xx = new ArrayList();
    String sql = "SELECT XM,KL,BC,FROM dp_zyr where dm=" + dm+ "AND SELECT DQBB,BBRQ FROM dp_gzgw where dm=" + dbrdm ;
    try{
    this.initConnection();
    ResultSet rs = conn.createStatement().executeQuery(sql);
    while(rs.next()){
    Login login = new Login();
    login.setMm(rs.getString("KL"));//密码
    login.setXm(rs.getString("XM"));//姓名
    login.setBc(rs.getString("BC"));//班次
    login.setBb(rs.getString("DQBB"));//班别
    login.setRq(rs.getString("BBRQ"));//日期
    xx.add(login);
    }
    }catch(Exception ex){ex.printStackTrace();}
    finally{
    this.closeConnection();
    }
    return xx;
    }
    }
      

  3.   

    你的lib下面有oracle jdbc驱动没有?
      

  4.   

    at dao.DbConn.initConnection(DbConn.java:24)
    =================================\
    24行是哪一行?NullPointerException,调试看看哪个没取到值
      

  5.   

     dbConnDriver  =c.getInitParameter("dbConnDriver");
    打印出你的 dbConnDriver看看吧!
      

  6.   

    forName出错,没找找这个类oracle.jdbc.driver.OracleDriver
    检查驱动是否放入到classpath下了再检查一下 dbConnDriver  =c.getInitParameter("dbConnDriver");是否获取的那个串
    或者直接通过dbConnDriver="oracle.jdbc.driver.OracleDriver"测试是否好使
      

  7.   

    Class.forName(dbConnDriver);
    这个有问题吧
    没找找这个类oracle.jdbc.driver.OracleDriver 
    你这个驱动导入没
      

  8.   

    1.检查下你从配置文件获取相关参数有没有正确,打印下
    2.检查下你的jar包等是否导入OK
      

  9.   

    请大家不要误人子弟,不是包的问题,如果包没导入,错误应该是找不到类.真正的原因是dbConnDriver为null. 当然url,user,password肯定也都是null.问题出在这一句上,ServletContext c = getServletConfig().getServletContext();
    改为 ServletConfig c = getServletConfig(); 就可以了.
      

  10.   

    at java.lang.Class.forName(Class.java:169) 
    错误在这里
    Class.forName(null)
    可能是Config什么都没有取到楼上的
    ServletConfig c = getServletConfig();
    虽然同意,但是最好还是用HttpServlet得
    initConfig(ServletConfig c) throws ServletException方法,此方法容器自动调用。然后你在这个方法里设置参数为正统做法。struts得ActionServlet,还有springmvc都是在这里设置的。
      

  11.   

    initConnection 这个方法不严密么! 代码没有啥大问题 就像大家说的可能是驱动的问题吧public void initConnection(){
            getContext();
            try{
                Class.forName(dbConnDriver);
                conn = DriverManager.getConnection(url,user,password);
                if(conn !=null){
                  LoggerManager.getLog(classname).info("get a connection!")
                    }
               }
            catch (Exception e){e.printStackTrace();} 
        }
      

  12.   

    我就从来没有实现过继承过来也能够取这个问题
    配置的初始化参数只对当前servlet有效
    要想同样必须是context-init才行
      

  13.   


    package dao;import java.sql.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    public class DbConn extends HttpServlet{
        private String dbConnDriver = null;  //是空的吧 
        private String url         = null;
        private String user        = null;
        private String password    = null;
        Connection    conn = null;
        public void getContext(){
            try{    
               ServletContext c = getServletConfig().getServletContext();
                        dbConnDriver  =c.getInitParameter("dbConnDriver"); //别告诉我这是初始化
                       url           =c.getInitParameter("url");
                       user          =c.getInitParameter("user");
                       password      =c.getInitParameter("password");             
            }catch (Exception e){System.out.println(e.toString());}
        }
        public void initConnection(){
            getContext();
            try{
                Class.forName(dbConnDriver); //好像还是空的吧
                conn = DriverManager.getConnection(url,user,password);
               }
            catch (Exception e){e.printStackTrace();} 
        }
            public void closeConnection(){
            try{
                if(conn!=null){
                    conn.close();
                    conn = null;
                }
            }catch(Exception e){e.printStackTrace();}
        
        }
    }
    说完了  给分吧  嘿嘿