为了实现使网站具有收发短信的功能,我使用了spring的任务调度,由于电信代理服务器是sqlserver2000的,所以需要额外连接SQLServer数据库,但是在Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();这一行却报了ClassNotFoundException。我已经将所需的jar包分别放到tomcat和项目的lib中,并且也已经将jar包添加到项目中了。而且我在使用main方法测试的时候正常连接数据库。相关问题:在该方法中调用this.getText("skey");会报空指针错误!

解决方案 »

  1.   

    sqljdbc.jar 包加进去了没?
      

  2.   

    加了啊,我用main方法都测试通过了可一旦用在spring的任务调度里面就卡住了
      

  3.   

    关注中有了包还说ClassNotFound 
      

  4.   

    sqlserver2000数据库驱动有三个jar包,你是否全部加了
    2楼说的是sqlserver2005的驱动jar包
      

  5.   

    public static void initDB(String ip, String username, String password) throws
    Exception {
    db_ip = ip;
    db_username = username;
    db_password = password;
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").
    newInstance();
    String url = "jdbc:microsoft:sqlserver://" + ip +
    ":1433;DatabaseName=DB_***;SelectMethod=Cursor;";
    System.err.println("--------短信服务器初始成功--------");
    conn = DriverManager.getConnection(url, username, password);
    if (conn == null) {
    throw new Exception(
    "Error database connection parameters in SMTool.initDB()...");
    }
    System.err.println("--------短线服务器连接成功--------");
    }

    public static void main(String[] args) {
    try {
    SMTool.initDB(MSG.DB_IP, MSG.DB_NAME, MSG.DB_PSW);
    } catch(Exception ex) {
    ex.printStackTrace();
    }
    }上面这个是能连接数据库的,但是在另外一个类中的
    public void link() {
    try {
    SMTool.initDB(MSG.DB_IP, MSG.DB_NAME, MSG.DB_PSW);
    } catch(Exception ex) {
    ex.printStackTrace();
    this.close();
    }
    }执行时却报ClassNotFoundException异常!当然这个方法是在spring 的任务调度中加载的。我觉得这应该是spring的问题:加载spring时没有将数据库驱动加载进来...
      

  6.   

    检查你的 Spring 配置文件,看看你有没有配置 JDBC在xml 里面
      

  7.   

    没有配置,项目用的是SSH框架,数据库是Qracle。但短信服务器的数据库却SqlServer,这就不知道该怎么弄了好郁闷啊。