gpt4 book ai didi

java - 如何使用 logback 禁用 accessExternalDTD 和 entityExpansionLimit 警告

转载 作者:IT老高 更新时间:2023-10-28 21:13:02 25 4
gpt4 key购买 nike

我将 logback 与 groovy 一起使用,并在解析 xml 时出现大量警告。我知道导致此问题的 JDK1.7_u45 中的错误。

Warning:  org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning: org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.

有什么方法可以关闭此日志警告在 DEBUG 中的显示?我尝试使用过滤器编写过滤器,但没有帮助。

最佳答案

这是 JRE 中的一个已知错误,将其报告为警告。请参阅错误报告 herehere

只有在类路径中有 xerces jar 时才会出现此问题,xerces 实现无法识别该属性并在 org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.setProperty() 上引发异常这会导致来自 com.sun.org.apache.xalan.internal.xsltc.compiler.Parser.parse() 的警告日志(到 System.err)

简单(如果可能)的解决方案是从类路径中删除 xerces jar。

您的日志过滤器不起作用,因为错误从未发送到 slf4j。哪一种暗示了解决问题的复杂方法 - 重定向 System.err to slf4j然后在其上使用日志过滤器。

重现问题的示例代码(基于问题报告):

import java.io.IOException;
import java.net.URL;

import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamSource;

public class XercesTest {
public static void main(String[] args) throws IOException, TransformerConfigurationException {
TransformerFactory tf = TransformerFactory.newInstance();
URL xsl = MainClass.class.getResource("build.xsl");
StreamSource stylesheetSource = new StreamSource(
xsl.openStream(), xsl.toExternalForm());
tf.newTransformer(stylesheetSource);
}
}

build.xsl

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<!-- TODO: Auto-generated template -->
</xsl:template>
</xsl:stylesheet>

和maven依赖:

<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.11.0</version>
</dependency>

关于java - 如何使用 logback 禁用 accessExternalDTD 和 entityExpansionLimit 警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25453042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com