我用的是intelij idea,准备做个网站。结果在测试一个从数据库拿数据的servlet时报错
java.lang.NoClassDefFoundError: Could not initialize class com.utils.JDBCutils
发现在Dao的实现类中添加main主程序可以运行,但是开启tomcat后无法初始化工具类com.utils.JDBCutils。
其中配置文件放在resource下,从上到下看了看代码也没有什么错的地方。
工具类代码:
package com.utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.IOException;
import java.sql.*;
import java.util.Properties;
public class JDBCutils {
//静态jdbc参数
private static DataSource ds;
static{
//读取资源文件,获取jdbc相关值
try {
Properties pro = new Properties();
//加载配置文件
pro.load(JDBCutils.class.getClassLoader().getResourceAsStream("druid.properties"));
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
//获取连接@return连接对象
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
//释放资源
// @param stmt
// @param conn
public static void close(Statement stmt,Connection conn){
close(null,stmt,conn);
}
//释放资源
// @param rs
// @param stmt
// @param conn
public static void close(ResultSet rs,Statement stmt,Connection conn){
if(rs != null){
try {
rs.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(stmt != null){
try {
stmt.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
if(conn != null){
try {
conn.close();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
}
}
//获取链接池方法
public static DataSource getDataSoucrce(){
return ds;
}
}
现在就是不知道这个报错到底咋回事,明明工具类在实现类中可以初始化,为啥在启动web项目时报错了.....