解决异常:Parser has reached the entity expansion limit "64,000" set by the Application

异常:分析器已达到由应用程序设置的实体扩展限制"64,000"

用JDOM分析一个超大的xml文件,大概20M,估计有很多Elements:

  SAXBuilder saxbuilder = null;
  Document doc_all=null;

  saxbuilder = new SAXBuilder(); // 新建立构造器
  
  try {
   FileInputStream xmlfile=new FileInputStream("verybig.xml");
   doc_all=saxbuilder.build(xmlfile); // 读入文件
  } catch (FileNotFoundException e) {
   System.err.println("缺少文件!请检查");
   System.exit(-1);
  } catch (JDOMException e) {
   System.err.println("解析XML模板文件出错!请检查");
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

抛出异常:
reached the entity expansion limit "64,000" set by the Application.
        at TErrorHandler.fatalError(XMLError.java:198)
        at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3342)
        at org.apache.crimson.parser.Parser2.fatal(Parser2.java:3333)
        at org.apache.crimson.parser.Parser2.expandEntityInContent(Parser2.java:2667)
        at org.apache.crimson.parser.Parser2.maybeReferenceInContent(Parser2.java:2569)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1980)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654)
        at org.apache.crimson.parser.Parser2.content(Parser2.java:1926)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1654)
        at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:634)
        at org.apache.crimson.parser.Parser2.parse(Parser2.java:333)
        at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
        at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185)
        at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:76)
        at XMLError.DOMRead(XMLError.java:101)
        at XMLError.main(XMLError.java:30)

中文翻译是:分析器已达到由应用程序设置的实体扩展限制"64,000"

原来是JAXP的bug,换JDK1.5解决!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值