Java-问题记录-NoClassDefFoundError

记录一次NoClassDefFoundError 异常

此次异常是由于创建数据库连接导致的,数据库配置如下:

@Configuration
@Slf4j
public class DataSourceConfig {
    @Value("${datasource.driver}")
    private  String driver;
    @Value("${datasource.username}")
    private  String username;
    @Value("${datasource.password}")
    private  String password;
    @Value("${datasource.url}")
    private  String url;
    @Bean
    public DataSource spatialDataSource() {
        Properties prop = new Properties();
        prop.put("driverClassName", driver);
        prop.put("url", url);
        prop.put("username", username);
        prop.put("password", password);
        prop.put("maxActive", "100");
        prop.put("maxWait", "10000");
        prop.put("initialSize", "10");
        DataSource dataSource = null;
        try {
            // 采用druid 连接池进行管理
            dataSource = DruidDataSourceFactory.createDataSource(prop);
        } catch (Exception e) {
            log.info("发生异常:", e);
            throw new RuntimeException(e);
        }
        return dataSource;
    }
}

然后有一个工具类,里面在静态代码块加载使用了这个Bean,类似于这个代码:

public class JdbcHelper {
    private static DataSource dataSource;

    static {
        dataSource = SpringHelper.getBean("spatialDataSource", DataSource.class);
    }
}

由于数据库连接识别了导致,在使用这个工具类的时候直接发生了NoClassDefFoundError异常。此次问题说明使用静态代码块的时候要保证静态代码块里面的东西能够正常加载,有异常就要处理异常,否则会导致类加载失败,在使用的时候找不到类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值