Him*_*rma 5 java spring sax logback spring-boot
Spring Boot 2.6.1 支持 logback 1.2.7
我在项目中添加了以下依赖项
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
但构建失败并出现以下异常:
Caused by: javax.xml.parsers.ParserConfigurationException: SAX feature 'http://xml.org/sax/features/external-general-entities' not supported.
at oracle.xml.jaxp.JXSAXParserFactory.setFeature(JXSAXParserFactory.java:272)
at ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:82)
... 44 more
Run Code Online (Sandbox Code Playgroud)
在 SaxEventRecorder.class 中,构建 SAX 解析器时失败
Caused by: javax.xml.parsers.ParserConfigurationException: SAX feature 'http://xml.org/sax/features/external-general-entities' not supported.
at oracle.xml.jaxp.JXSAXParserFactory.setFeature(JXSAXParserFactory.java:272)
at ch.qos.logback.core.joran.event.SaxEventRecorder.buildSaxParser(SaxEventRecorder.java:82)
... 44 more
Run Code Online (Sandbox Code Playgroud)
有没有办法覆盖实施?
谢谢 :)
小智 12
升级时遇到同样的问题。这不是 Spring 问题,并且您不想自己重写实现。
SAXParserFactory是一个抽象类 - 它可以有多个实现。该newInstance方法选择类路径上最后/顶部的实现。
我发现我的类路径上有一个“额外”实现,因为依赖项有自己的实现,SAXParserFactory而不是 Logback 期望的“典型”实现。而且这个“额外”SAXParserFactory不支持 Logback 试图启用的功能。
我必须在依赖项中显式声明 xerces 实现,以便“真正”实现优先于类路径上的其他“额外”实现。
所以我的建议是你看看你有这个抽象类的实现(我可以使用 IntelliJ IDE 轻松地看到它),然后管理/重新安排你的依赖项,以便支持该功能的正确实现对你有更高的优先级类路径。
| 归档时间: |
|
| 查看次数: |
11117 次 |
| 最近记录: |