如果你也遇到同样的报错问题, 查看本文章,可以直接帮你节省大约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 的坑相关推荐

  1. Android~老项目项目升级GradleAGP 7.0踩坑

    结合最近对公司项目做了一下升级,踩了点坑.记录一下,方便后续有人参考. module模块build.gradle变化 apply plugin变成了plugins 对部分android闭包下面的属性也 ...

  2. 【Vue】Vue1.0+Webpack1+Gulp项目升级构建方案的踩坑路

    最近半年在维护公司的一个管理后台项目,搭建之初的技术栈比较混乱,构建方案采用了Gulp中调用Webpack的方式,Gulp负责处理.html文件,Webpack负责加载.vue..js等.而在这一套构 ...

  3. Android版本更新踩坑,Android Studio 3.0升级后踩到的坑

    最近升级了Android Studio 3.1.2,还没沉浸在欢乐中,就当头一棒,更新项目没事,但是运行项目就报错.错误信息如下: Caused by: org.gradle.tooling.Buil ...

  4. Flutter升级到1.12填坑指南

    最近由于项目需要,需要把flutter升级到stable版本,目前的stable版本是1.12.13的hotfix,而我们项目目前的版本是1.7.3.Google在发布flutter 1.12对And ...

  5. .Net Core 2.2升级3.1的避坑指南

    写在前面 微软在更新.Net Core版本的时候,动作往往很大,使得每次更新版本的时候都得小心翼翼,坑实在是太多.往往是悄咪咪的移除了某项功能或者组件,或者不在支持XX方法,这就很花时间去找回需要的东 ...

  6. 总结我在架构师升级过程中的那些坑以及各种体会

    先说明,本文说的是技术架构,而不是业务架构,另外,这个架构是指目前比较热门的高并发大数据的架构.论能力,我还达不到架构师的水平,所以我目前还在不断努力. 本文回顾了我在架构师方面的学习途径和学习方式, ...

  7. Discuz论坛升级攻略及踩坑处理

    一,背景 为了推进公司所有网站全站https升级,所以优先对论坛做https了升级,以便为全站https试验和积累经验. 二,Discuz https升级实战 discuz bbs的https升级,涉 ...

  8. mysqlclient==1.3.7对应mysql版本_MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)...

    由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能.而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能. 因此需要升级MySQL版本,升级的目标版本是 ...

  9. mysql5.7.76安装,MySQL 5.7.30 的安装/升级(所有可能的坑都在这里)

    楔子 由于之前电脑上安装的MySQL版本是比较老的了,大概是5.1的版本,不支持JSON字段功能.而最新开发部门开发的的编辑器产品,使用到了JSON字段的功能. 因此需要升级MySQL版本,升级的目标 ...

  10. 他来了!IDEA 2020.1 新版介绍!不过升级前请注意避坑!

    往期热门文章: 1,<往期精选优秀博文都在这里了!> 2.七个略火的Spring Boot+Vue开源项目! 3.十个你可能不曾用过的Linux命令!巨好用! 4.分库分表  PK  Ne ...

最新文章

  1. linux 故障注入_阿里巴巴开源故障注入工具_chaosblade
  2. SQLite数据库管理工具(SQLiteStudio)v3.1.1
  3. Windows7下安装LabelImg标注工具
  4. php字符串处理面试题,关于PHP字符串的一道面试题
  5. .NET | 多线程下的调用上下文 : CallContext
  6. python+[:]+切片_我从C ++到Python的方式:概念上的改变
  7. Android Glide图片加载框架(四)回调与监听
  8. Java Map用法
  9. 计算机竞赛湖北有哪些,我校29名学生在全国大学生数学竞赛湖北赛区获奖
  10. 设计模式学习笔记(1)——单例模式
  11. eclipse maven打包_我的Java Web之路47 - 使用Maven改造租房网工程
  12. mysql中更新的命令是_MySQL 语言中,更新表数据的命令是( )。_学小易找答案
  13. ExcelManager--基于.Net的Excel读写管理类库(二) 转载
  14. python爬取数据库数据类型_python中从搭建Mysql平台到爬取数据一站式全部完成
  15. java常见面试题:Java程序员面试题(五)
  16. 运算放大器 你想知道的都在这里
  17. 轻松搭建一个BI销售数据分析系统
  18. Warning: Leaking Caffe2 thread-pool after fork
  19. 电商平台搭建流程是怎样的_不懂编程怎么搭建_OctShop
  20. Android开发之仿QQ表情实现(上)

热门文章

  1. 机器学习--支持向量机实战(二)简易SMO算法实现
  2. w ndows7如何清理垃圾,windows7系统下在关机时如何自动清理垃圾文件
  3. IDEA如何导入git仓库的分支代码
  4. c语言中输入大数,如何使用C语言实现输入10个数按从大到小的顺序排序输出
  5. bootstrap带图标的按钮与图标做连接
  6. SharePoint 2013连接非默认端口的SQL Server
  7. html5+css3方式实现mobie app的一些瓶颈
  8. 分析arm linux启动打印信息
  9. static用法报错解决:cannot declare member function to have static linkage [-fpermissive]
  10. Binder内存拷贝的本质和变迁