在解决微信支付XXE(XML外部实体注入漏洞)的时使用了setFeature()方法,出现了如下异常:
java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)
不同jar包的多xml解析器冲突
微信支付创建xml解析器的官方SDK源码
public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
documentBuilderFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
documentBuilderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
documentBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
documentBuilderFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
documentBuilderFactory.setXIncludeAware(false);
documentBuilderFactory.setExpandEntityReferences(false);
return documentBuilderFactory.newDocumentBuilder();
解决方法:在使用DocumentBuilderFactory前加入这一行代码
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
public static DocumentBuilder newDocumentBuilder() throws ParserConfigurationException {
//解决java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
documentBuilderFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
documentBuilderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
documentBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
documentBuilderFactory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true);
documentBuilderFactory.setXIncludeAware(false);
documentBuilderFactory.setExpandEntityReferences(false);
return documentBuilderFactory.newDocumentBuilder();
1 问题在解决微信支付XXE(XML外部实体注入漏洞)的时使用了setFeature()方法,出现了如下异常:java.lang.AbstractMethodError:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)2 原因不同jar包的多xml解析器冲突3 解决微信支付创建...
解决错误nested exception is java.lang.NoSuchMethodError:org.apache.poi.util.XMLHelper.newDocumentBuilder
javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V异常
原因:不同jar包的多xml解析器冲突
解决方法:添加下列代码
System.setProperty("javax.xml.parsers.DocumentBuilderFactory","com.sun.org.apache.xerc...
文章目录1. 现象2.
解决方案13.
解决方案2
1. 现象
CXF 在和xercesImpl.jar冲突的时候,抱错
javax.
xml.
parsers.
DocumentBuilderFactory.
setFeature(L
java/
lang/
String;Z);
2.
解决方案1
将xercesImpl.jar替换xercesImpl:2.9.1就可以了
maven集成坐标
<dependency>
<groupId>xerces</groupId>
java.lang.AbstractMethodError: javax.xml.transform.TransformerFactory.setFeature(Ljava/lang/String;Z)V
private static String transForm(String xml, InputStream xsltStream) {
if(xml == null || "".equals(xml)) {
return null;
ByteA
2.检查您的代码是否使用了不正确的 API 版本。请确保您的代码与您所使用的
XML 解析器版本兼容。
3.检查您的代码是否使用了不正确的类加载器。请确保您的代码使用了正确的类加载器来加载您的
XML 解析器。
4.如果您使用了 JDK9 及以上版本,则需要在模块描述文件中添加以下依赖项:
<module>
java.
xml</module>
</uses>
希望这些
解决方法能够帮助您
解决问题。
解决According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by
iqqqqqqqya:
解决Error: unable to verify the first certificate报错
程序员小小黑:
解决Cannot delete or update a parent row: a foreign key constraint fails的mysql报错
呼叫 steelo~Z: