报错信息如下:
18:00:57,395 |-ERROR in ch.qos.logback.core.joran.event.SaxEventRecorder@48aaecc3 - Error during parser creation or parser configuration org.xml.sax.SAXNotRecognizedException: unrecognized feature http://xml.org/sax/features/external-general-entitiesat org.xml.sax.SAXNotRecognizedException: unrecognized feature http://xml.org/sax/features/external-general-entitiesat at org.gjt.xpp.sax2.Driver.setFeature(Driver.java:178)at at org.gjt.xpp.jaxp11.SAXParserImpl.setFeatures(SAXParserImpl.java:149)at at org.gjt.xpp.jaxp11.SAXParserImpl.<init>(SAXParserImpl.java:132)at at org.gjt.xpp.jaxp11.SAXParserFactoryImpl.newSAXParserImpl(SAXParserFactoryImpl.java:114)at at org.gjt.xpp.jaxp11.SAXParserFactoryImpl.setFeature(SAXParserFactoryImpl.java:142)at at ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:88)at at ch.qos.logback.core.joran.event.SaxEventRecorder.recordEvents(SaxEventRecorder.java:62)at at
原因分析:
- 从报错日志可以看出是logback的xml日志解析出现问题, 报错相关的类是
org.gjt.xpp.sax2.
等相关的类 - 查找这些类所在的包为
pull-parser
, 并且这个包的最新版本都是2005年的,都没有维护 - 我并没有直接引入这个包, 继续查找发现是阿里云的SDK引入的老版本的dom4j包, dom4j再引入这个包导致的问题。
- SDK被其他项目使用,最好做到少依赖,不依赖第三方包和过期包。 垃圾阿里云
解决办法
- 现在阿里云的SDK访问的接口也全部都是
application/json
的格式了, 并且我也没有使用到xml
格式 - 我尝试直接排除依赖
pull-parser
, 启动项目成功, 运行后也正常。 - 阿里对外提供的SDK真的是垃圾, 基本的依赖都没有清理好