java.lang.OutOfMemoryError: Java heap space
at org.apache.xerces.impl.dtd.DTDGrammar.attributeDecl(Unknown Source)
at org.apache.xerces.impl.dtd.XMLDTDProcessor.attributeDecl(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.scanAttlistDecl(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.scanDecls(Unknown Source)
at org.apache.xerces.impl.XMLDTDScannerImpl.scanDTDExternalSubset(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.DTDConfiguration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:532)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:599)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1621)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1589)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1568)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1542)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1462)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1448)
at DAO.BaseDAO.<init>(BaseDAO.java:17)
at DAO.TradeclassDAO.<init>(TradeclassDAO.java:7)
at ActionForm.logoBean.<init>(logoBean.java:22)
at sun.reflect.GeneratedConstructorAccessor43.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:286)
at org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:350)
at org.apache.struts.chain.commands.CreateActionForm.execute(CreateActionForm.java:89)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:48)请问下发生这种情况具体有几种原因引起的!解决的方法有哪些?Thank you!

解决方案 »

  1.   

    很可能是xerces的bug:是由于解析不规范的XML触发了它的bug。
      

  2.   

    这个是程序运行时异常,不是一定会产生,取决于你内存可用数的大小。
    当内存大小不能适应程序需要的数量时就会抛出。
    原因:一般是因为程序使用了大量的对象,并且这些对象没有有及时释放,JAVA的垃圾回收器也处理不了。
    解决:两种方法
    1、优化代码。
       一般情况下,程序不会使用对象一直抓着不放(程序循环的地方)
    2、修改应用服务器的JVM内存大小
      修改方法记不清了,你可以百度一下,不难。
      

  3.   

    修改MyEclipse分配里面的虚拟内存就可以了。好像位置是在Eclipse文件夹下面的一个ini文件那里配。-Xmx后面的数字调大点就可以了。
      

  4.   


    麻烦的就是,空间商给的内存固定啦。tomcat 250M 
      

  5.   

    Java heap space
    貌似 一般 是StringBuffer的问题你可以在new的时候,不变成全局变量,除非必须如果不能解决,那就改内存。。jvm tomcat
    个人愚见
      

  6.   

    内存溢出的原因有很多的我今天就在MAP里面PUT了太多元素也是出这个异常。