您好!
欢迎来到京东云开发者社区
登录
首页
博文
课程
大赛
工具
用户中心
开源
首页
博文
课程
大赛
工具
开源
更多
用户中心
开发者社区
>
博文
>
NoClassDefFoundError案例
分享
打开微信扫码分享
点击前往QQ分享
点击前往微博分享
点击复制链接
NoClassDefFoundError案例
京东物流质控队
2021-01-05
IP归属:未知
42080浏览
计算机编程
## 问题背景 > 应用为了数据加密,引用了一个加密组件。使用的Maven 依赖,启动应用后,直接报错:`java.lang.NoClassDefFoundError: Could not initialize class com.foo.security.handle.AcesCipherText` > > 一开始错误理解为 `ClassNotFoundException`,以为是包下载、编译的问题,反复clean,update snapshot。 > > 后来才发现是 ClassLoader 试图加载类的定义时出现错误,是在加载到类文件之后发生的。 ## 源码分析 ```java public final class AcesCipherTextHandle<E> extends BaseTypeHandler<E> { public AcesPlainTextHandle() { } public E getNullableResult(ResultSet rs, String columnName) throws SQLException { return AcesCipherTextService.getIns().getResult(rs, columnName); } static { // 没有找到对应的配置文件,导致必要的加密参数为空,直接 throw RuntimeException。结果是Class加载失败。 // 发生在Class.forName() 调用过程中 LoadProperties.loadProps(); } } ``` ## 问题解决和总结 1. 在应用classpath 下增加组件需要的配置文件,保证类加载过程中,上述的静态代码块正常执行。 2. 认真看错误日志,严谨对待,这样能减少误解引起的不必要浪费时间。
原创文章,需联系作者,授权转载
上一篇:ME协同开放平台-H5应用接入指南
下一篇:安全 | 四张图读懂等级保护2.0
相关文章
Taro小程序跨端开发入门实战
Flutter For Web实践
配运基础数据缓存瘦身实践
京东物流质控队
文章数
7
阅读量
22477
作者其他文章
01
Insight Mybatis JdbcTemplate 混合事务控制的实现
spring容器中mybatis和jdbcTemplate混合事务控制
01
Insight Spring Test 事务自动回滚的实现
了解Spring Test 事务控制的原理
01
Insight Mybatis 日志打印及使用建议
mybatis 利用动态代理实现日志原理分析
01
Insight Spring中的算法-占位符查找
spring框架中的字符串算法
最新回复
丨
点赞排行
共0条评论
京东物流质控队
文章数
7
阅读量
22477
作者其他文章
01
Insight Mybatis JdbcTemplate 混合事务控制的实现
01
Insight Spring Test 事务自动回滚的实现
01
Insight Mybatis 日志打印及使用建议
01
Insight Spring中的算法-占位符查找
添加企业微信
获取1V1专业服务
扫码关注
京东云开发者公众号