启动服务报Failed to read external DTD 'mybatis-3-config.dtd'错误

1、启动Spring Boot服务时可能出现如下异常

Caused by: org.xml.sax.SAXParseException: External DTD: Failed to read external DTD 'mybatis-3-config.dtd', because 'http' access is not allowed due to restriction set by the accessExternalDTD property.
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:204)
        at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:178)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400)
        at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
        at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1472)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1185)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1073)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:974)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605)
        at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:507)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:867)
        at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:796)
        at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:142)
        at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247)
        at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339)
        at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:261)
        ... 81 common frames omitted

2、解决步骤

2.1、新建配置jaxp.properties

在%JAVA_HOME%/jre/lib 目录下新建jaxp.properties文件,输入如下内容

javax.xml.accessExternalSchema=all
javax.xml.accessExternalDTD=all

2.2、为jaxp.properties文件授权

chmod 666 jaxp.properties

3、如果上述方法仍不奏效

可尝试启启动时加参数

java -jar -Djavax.xml.accessExternalDTD=all xx.jar
posted @ 2020-12-10 11:03  Bruce.Chang.Lee  阅读(867)  评论(0)    收藏  举报