java运行出错java.lang.NoClassDefFoundError

在javaweb项目中写了一个DBUtil,使用的是DBCP连接池,写完之后做了一个测试能够正常运行,而当我在Tomcat上运行的时候却报错:java.lang.NoClassDefFoundError,请问这是什么原因?

依赖包:

测试类运行结果:

DBUtil.java代码如下:

public class DBUtil {
  private static BasicDataSource dataSource;
  //初始化BasicDataSource
  static {
    Properties p = new Properties();
    try {
      p.load(DBUtil.class.getClassLoader().getResourceAsStream("db.properties"));
      //读取和初始化连接参数
      String driver = p.getProperty("jdbc.driver");
      String url = p.getProperty("jdbc.url");
      String user = p.getProperty("jdbc.user");
      String pwd = p.getProperty("jdbc.pwd");
      int initialSize = Integer.parseInt(p.getProperty("jdbc.initialSize"));
      int maxActiveSize = Integer.parseInt(p.getProperty("jdbc.maxActiveSize"));
      //初始化BasicDataSource对象
      dataSource = new BasicDataSource();
      //注册驱动
      Class.forName(driver);
      //连接参数
      dataSource.setUrl(url);
      dataSource.setUsername(user);
      dataSource.setPassword(pwd);
      //管理策略参数
      dataSource.setInitialSize(initialSize);
      dataSource.setMaxActive(maxActiveSize);
    } catch (IOException | ClassNotFoundException e) {
      e.printStackTrace();
      throw new RuntimeException("加载db.properties文件失败");
    }

  }

  /**
   * 从连接池中获取重用的连接,如果连接池满了则等待。
   * 如果有连接归还,则获取重用的连接。
   * @return
   * @throws SQLException
   */
  public static Connection getConnection() throws SQLException {
    return dataSource.getConnection();
  }

}

Tomcat日志:

阅读 1.8k
1 个回答

可能是静态代码块报错了,捕获Exception,打印异常日志

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题