digester java_commons-digester 升级到 commons-digester3 的坑
如果你也遇到同样的报错问题, 查看本文章,可以直接帮你节省大约2小时时间
commons-digester 已经很久没有维护了, 这次在升级 feilong 到3 的时候, 顺便也升级下 commons-digester3 依赖
1. 升级依赖的jar
org.apache.commons
commons-digester3
3.2
2 报错 1 DigesterLoader.createDigester
升级后, 发现找不到 DigesterLoader.createDigester 方法了
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
Digester digester = DigesterLoader.createDigester(new InputSource(contextClassLoader.getResourceAsStream(RULE_FILE)));
private static Digester build(String file){
try{
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
Digester digester = DigesterLoader.newLoader(new FromXmlRulesModule(){
@Override
protected void loadRules(){
loadXMLRules(new InputSource(contextClassLoader.getResourceAsStream(RULE_FILE)));
}
}).newDigester();
digester.setValidating(false);
return digester;
}catch (Exception e){
throw new DefaultRuntimeException("can not create Digester from: " + file, e);
}
}
3 报错 2 文档根元素 "digester-rules" 必须匹配 DOCTYPE 根 "null"
执行代码,报错
17:25:30 ERROR (Digester.java:1526) [error()] Parse Error at line 2 column 17: 文档根元素 "digester-rules" 必须匹配 DOCTYPE 根 "null"。
org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 17; 文档根元素 "digester-rules" 必须匹配 DOCTYPE 根 "null"。
我拿我的rule xml 和官网单元测试里面的rule xml 进行对比 ,然后将xml 最顶部代码改成
解决问题
digester java_commons-digester 升级到 commons-digester3 的坑相关推荐
- Android~老项目项目升级GradleAGP 7.0踩坑
结合最近对公司项目做了一下升级,踩了点坑.记录一下,方便后续有人参考. module模块build.gradle变化 apply plugin变成了plugins 对部分android闭包下面的属性也 ...
- 【Vue】Vue1.0+Webpack1+Gulp项目升级构建方案的踩坑路
最近半年在维护公司的一个管理后台项目,搭建之初的技术栈比较混乱,构建方案采用了Gulp中调用Webpack的方式,Gulp负责处理.html文件,Webpack负责加载.vue..js等.而在这一套构 ...
- Android版本更新踩坑,Android Studio 3.0升级后踩到的坑
最近升级了Android Studio 3.1.2,还没沉浸在欢乐中,就当头一棒,更新项目没事,但是运行项目就报错.错误信息如下: Caused by: org.gradle.tooling.Buil ...
- Flutter升级到1.12填坑指南
最近由于项目需要,需要把flutter升级到stable版本,目前的stable版本是1.12.13的hotfix,而我们项目目前的版本是1.7.3.Google在发布flutter 1.12对And ...
- .Net Core 2.2升级3.1的避坑指南
写在前面 微软在更新.Net Core版本的时候,动作往往很大,使得每次更新版本的时候都得小心翼翼,坑实在是太多.往往是悄咪咪的移除了某项功能或者组件,或者不在支持XX方法,这就很花时间去找回需要的东 ...
- 总结我在架构师升级过程中的那些坑以及各种体会
先说明,本文说的是技术架构,而不是业务架构,另外,这个架构是指目前比较热门的高并发大数据的架构.论能力,我还达不到架构师的水平,所以我目前还在不断努力. 本文回顾了我在架构师方面的学习途径和学习方式, ...
- Discuz论坛升级攻略及踩坑处理
一,背景 为了推进公司所有网站全站https升级,所以优先对论坛做https了升级,以便为全站https试验和积累经验. 二,Discuz https升级实战 discuz bbs的https升级,涉 ...
- mysqlclient==1.3.7对应mysql版本_MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)...
由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能.而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能. 因此需要升级MySQL版本,升级的目标版本是 ...
- mysql5.7.76安装,MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)
楔子 由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能.而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能. 因此需要升级MySQL版本,升级的目标 ...
- 他来了!IDEA 2020.1 新版介绍!不过升级前请注意避坑!
往期热门文章: 1,<往期精选优秀博文都在这里了!> 2.七个略火的Spring Boot+Vue开源项目! 3.十个你可能不曾用过的Linux命令!巨好用! 4.分库分表 PK Ne ...
最新文章
- linux 故障注入_阿里巴巴开源故障注入工具_chaosblade
- SQLite数据库管理工具(SQLiteStudio)v3.1.1
- Windows7下安装LabelImg标注工具
- php字符串处理面试题,关于PHP字符串的一道面试题
- .NET | 多线程下的调用上下文 : CallContext
- python+[:]+切片_我从C ++到Python的方式:概念上的改变
- Android Glide图片加载框架(四)回调与监听
- Java Map用法
- 计算机竞赛湖北有哪些,我校29名学生在全国大学生数学竞赛湖北赛区获奖
- 设计模式学习笔记(1)——单例模式
- eclipse maven打包_我的Java Web之路47 - 使用Maven改造租房网工程
- mysql中更新的命令是_MySQL 语言中,更新表数据的命令是( )。_学小易找答案
- ExcelManager--基于.Net的Excel读写管理类库(二) 转载
- python爬取数据库数据类型_python中从搭建Mysql平台到爬取数据一站式全部完成
- java常见面试题:Java程序员面试题(五)
- 运算放大器 你想知道的都在这里
- 轻松搭建一个BI销售数据分析系统
- Warning: Leaking Caffe2 thread-pool after fork
- 电商平台搭建流程是怎样的_不懂编程怎么搭建_OctShop
- Android开发之仿QQ表情实现(上)
热门文章
- 机器学习--支持向量机实战(二)简易SMO算法实现
- w ndows7如何清理垃圾,windows7系统下在关机时如何自动清理垃圾文件
- IDEA如何导入git仓库的分支代码
- c语言中输入大数,如何使用C语言实现输入10个数按从大到小的顺序排序输出
- bootstrap带图标的按钮与图标做连接
- SharePoint 2013连接非默认端口的SQL Server
- html5+css3方式实现mobie app的一些瓶颈
- 分析arm linux启动打印信息
- static用法报错解决:cannot declare member function to have static linkage [-fpermissive]
- Binder内存拷贝的本质和变迁