我正在使用 wikixmlj 解析维基百科 xml 转储并收到以下错误。
org.xml.sax.SAXParseException; lineNumber: 64243259; columnNumber: 371; JAXP00010004: The accumulated size of entities is "50,000,001" that exceeded the "50,000,000" limit set by "FEATURE_SECURE_PROCESSING".
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1239)
at edu.jhu.nlp.wikipedia.WikiXMLSAXParser.parse(WikiXMLSAXParser.java:58)
at edu.virginia.cs.wikirarchy.ParseWikiPage.run(ParseWikiPage.java:36)
at java.lang.Thread.run(Thread.java:745)
所以这部分错误主要是:
The accumulated size of entities is "50,000,001" that exceeded the "50,000,000" limit set by "FEATURE_SECURE_PROCESSING".
我找不到这个问题的解决方案。
最佳答案
在运行 java 命令时再添加三个参数解决了我的问题。
-DentityExpansionLimit=2147480000 -DtotalEntitySizeLimit=2147480000 -Djdk.xml.totalEntitySizeLimit=2147480000
所以,现在我正在使用以下命令运行我的代码。
nohup java -DentityExpansionLimit=2147480000 -DtotalEntitySizeLimit=2147480000 -Djdk.xml.totalEntitySizeLimit=2147480000 -Xmx16g -cp "lib/*.jar" -jar dist/WikiRarchy.jar 32 &
出现问题是因为 - 默认情况下,安全处理将实体数量限制为 50,000,000,并且此扩展限制控制实体扩展。
关于java - 使用 wikixmlj 解析 xml 文件时出现错误 : xml. sax.SAXParseException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42991043/