当前位置:网站首页>解决JDBC在web工程中无法获取配置文件
解决JDBC在web工程中无法获取配置文件
2022-08-04 05:25:00 【**往事随風**】
解决JDBC在web工程中无法获取配置文件
一、错误描述
在javaweb项目中,通过前端页面发送表单数据到Servlet程序并进行插入数据到数据库中的操作时,出现空指针异常,如下图所示:
通过异常信息,我们可以发现,是我们的 JDBCUtiles 类出现了异常,那么我们对JDBCUtiles 进行 debug 调试,发现是数据库连接出现了问题:
从上面的debug信息我们可以看到,我们的配置文件获取值为null,进而导致我们的数据库连接为 null
,出现这一现象的主要原因是我们的配置文件没有获取到
二、解决方案
- 首先检查配置文件的位置是否正确,我这里是没有问题的
- 其次看一下我这里使用的获取配置文件的方式:
static{
try {
Properties properties = new Properties();
InputStream resourceAsStream = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties"); // 系统类加载器获取配置文件
// 加载配置文件
properties.load(resourceAsStream);
source1 = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
上边这种获取方式采用的是 静态代码块 + 系统类加载器
的方式来获取配置文件,但是在我们的javaweb项目部署过程中文件目录可能会发生变化,所以这种方式可能会获取不到配置文件,所以我们可以 将 系统类加载器
修改为 当前类加载器
,如下所示:
static{
try {
Properties properties = new Properties();
InputStream resourceAsStream = JDBCUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"); // 当前类加载器获取配置文件
// 加载配置文件
properties.load(resourceAsStream);
source1 = DruidDataSourceFactory.createDataSource(properties);
} catch (Exception e) {
e.printStackTrace();
}
}
修改完成之后重启服务,即可解决此问题。
边栏推荐
- TensorRT例程解读之语义分割demo
- Embedded system driver primary [4] - under the basis of character device driver _ concurrency control
- Several ways to heavy
- PHP解决字符乱码问题(多种编码转换)
- Redis common interview questions
- 8. Custom mapping resultMap
- Summary of MySQL database interview questions (2022 latest version)
- Deploy LVS-DR cluster [experimental]
- Unity动画生成工具
- MySql数据恢复方法个人总结
猜你喜欢
入坑软件测试的经验与建议
腾讯136道高级岗面试题:多线程+算法+Redis+JVM
Resolved error: npm WARN config global `--global`, `--local` are deprecated
Swoole学习(一)
企业需要知道的5个 IAM 最佳实践
webrtc中视频采集实现分析(一) 采集及图像处理接口封装
OpenSSF 安全计划:SBOM 将驱动软件供应链安全
读者让我总结一波 redis 面试题,现在肝出来了
想低成本保障软件安全?5大安全任务值得考虑
The idea setting recognizes the .sql file type and other file types
随机推荐
Unity开发类似Profile那样的数据分析工具
Canal mysql data synchronization
企业需要知道的5个 IAM 最佳实践
MySQL database (basic)
7.13 Day20----MYSQL
即时通讯网 即时通讯音视频开发
C language -- operator details
TensorRTx-YOLOv5工程解读(二)
OpenRefine中的正则表达式
The symbol table
OpenSSF 安全计划:SBOM 将驱动软件供应链安全
想低成本保障软件安全?5大安全任务值得考虑
Redis common interview questions
Swoole学习(二)
Unity Visual Effect Graph入门与实践
Do you think border-radius is just rounded corners?【Various angles】
心余力绌:企业面临的软件供应链安全困境
webrtc中的任务队列TaskQueue
解决安装nbextensions后使用Jupyter Notebook时出现template_paths相关错误的问题
JS基础--强制类型转换(易错点,自用)