`
hbpop3
  • 浏览: 15141 次
  • 性别: Icon_minigender_1
  • 来自: 浙江
文章分类
社区版块
存档分类
最新评论

再现OutOfMemoryError:Java heap space

阅读更多
最近在做一个项目,使用架构是struts2.0+ejb3.0(struts2.0刚刚学习不久),本地服务器使用的是JBOSS4.0.5GA,
数据库是ORACLE10G,现正处于开发阶段,可是一个恼人的问题始终没办法解决----OutOfMemoryError:Java heap space. 使用Eclipse启动jboss后,运行几次就会出现内存溢出问题,我的机器是2GB内存,应该够用吧!
调整虚拟机参数也不行.
我怀疑是我的struts2的使用上有问题,可是找不出原因是什么,开始的时候我以为是JBOSS的问题,联系了JBOSS的余先生,那边的技术给我回复的mail是可能"返回的list没有释放".我迷糊了,我的view是用的freemarker,从action中取出的数据到ftl里面显示,这让我怎么释放呢?难道struts2本身没有清除valuestack的东东么?ActionContextCleanUp 难道不能解决这个问题么?
我的web.xml配置是:
<filter> 
   <filter-name>struts-cleanup</filter-name> 
   <filter-class>org.apache.struts2.dispatcher.ActionContextCleanUp</filter-class> 
</filter>
<filter>  
   <filter-name>struts2</filter-name>  
   <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping> 
   <filter-name>struts-cleanup</filter-name> 
     <url-pattern>/*</url-pattern> 
</filter-mapping>
<filter-mapping>  
   <filter-name>struts2</filter-name>  
   <url-pattern>/*</url-pattern>  
</filter-mapping>

Eclipse控制台输出的异常信息是:
16:30:39,687 ERROR [[default]] Servlet.service() for servlet default threw exception
java.lang.OutOfMemoryError: Java heap space
	at java.lang.String.toCharArray(String.java:2726)
	at freemarker.core.TextBlock.<init>(TextBlock.java:77)
	at freemarker.core.FMParser.PCData(FMParser.java:2466)
	at freemarker.core.FMParser.Content(FMParser.java:2528)
	at freemarker.core.FMParser.OptionalBlock(FMParser.java:2742)
	at freemarker.core.FMParser.Root(FMParser.java:2914)
	at freemarker.template.Template.<init>(Template.java:149)
	at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:376)
	at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:347)
	at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:229)
	at freemarker.template.Configuration.getTemplate(Configuration.java:487)
	at freemarker.core.Environment.getTemplateForInclusion(Environment.java:1357)
	at freemarker.core.Include.accept(Include.java:143)
	at freemarker.core.Environment.visit(Environment.java:196)
	at freemarker.core.MixedContent.accept(MixedContent.java:92)
	at freemarker.core.Environment.visit(Environment.java:196)
	at freemarker.core.Environment.process(Environment.java:176)
	at freemarker.template.Template.process(Template.java:232)
	at org.apache.struts2.views.freemarker.FreemarkerResult.doExecute(FreemarkerResult.java:168)
	at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:178)
	at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:343)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
	at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:213)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:218)
	at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
	at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:216)
	at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
	at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
	at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
	at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:219)

大家谁有没有好的建议和方法,谢谢了!
分享到:
评论
4 楼 抛出异常的爱 2008-07-14  
试着增加jvm的内存大小

方法google一下
3 楼 hbpop3 2008-07-10  
今天做了个测试,如果在action中取出数据后,直接return null,那么就不会出现溢出情况,只要一输出到页面,就溢出,这是怎么回事?难道是freemarker的问题?

各位大侠,已经三四天了!
2 楼 hbpop3 2008-07-10  
还是没有啊?
1 楼 hbpop3 2008-07-09  
没人理我,郁闷!

相关推荐

    java错误处理:java.lang.OutOfMemoryError: Java heap space

    ### Java 错误处理:java.lang.OutOfMemoryError: Java heap space 在Java应用程序开发过程中,经常遇到的一个问题就是内存溢出错误,特别是在处理大量数据或长时间运行的应用时。其中,“java.lang....

    java.lang.OutOfMemoryError: Java heap space 解决方法

    "Java.lang.OutOfMemoryError: Java heap space 解决方法" Java.lang.OutOfMemoryError: Java heap space 是 Java 中的一个常见错误,它发生时,Java 虚拟机 (JVM) 无法分配对象,因为堆空间不足。下面是解决该问题...

    java虚拟机OutOfMemoryError:Java heap space堆dump文件

    java虚拟机OutOfMemoryError:Java heap space堆dump文件,可以直接用来分析。

    Myeclipse下java.lang.OutOfMemoryError Java heap space的解决

    ### Myeclipse下java.lang.OutOfMemoryError: Java heap space的解决方案 在使用Myeclipse进行Java开发时,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这个错误提示。这种异常通常发生在应用程序占用...

    编译时出现java.lang.OutOfMemoryError Java heap space异常

    在进行Java项目编译的过程中,可能会遇到`java.lang.OutOfMemoryError: Java heap space`这种异常。这类异常通常表明Java虚拟机(JVM)在运行过程中遇到了内存不足的问题,特别是当堆内存无法满足程序的需求时。 ##...

    java解决nested exception is java.lang.OutOfMemoryError Java heap space

    Java程序在运行过程中可能会遇到各种异常,其中"nested exception is java.lang.OutOfMemoryError: Java heap space"是一个常见的问题,通常发生在程序试图分配超过堆内存限制的空间时。这个错误表明Java虚拟机(JVM...

    java[1].lang.OutOfMemoryError_Java_heap_space错误及处理办法

    ### Java.lang.OutOfMemoryError:Java Heap Space 错误及处理办法 在Java应用程序开发与维护过程中,经常会遇到`java.lang.OutOfMemoryError: Java heap space`这一异常情况。该异常通常表明Java虚拟机(JVM)的堆...

    记录java.lang.OutOfMemoryErrorJava heap space的情况.docx

    在Java程序中,`java.lang.OutOfMemoryError: Java heap space` 是一个常见的错误,意味着程序在运行过程中耗尽了JVM分配的堆内存。这个错误通常发生在创建大量对象或者单个对象占用过多内存时。 一、问题描述与...

    Caused by: java.lang.OutOfMemoryError: PermGen space解决方案

    在Java应用程序运行过程中,"java.lang.OutOfMemoryError: PermGen space"错误是常见的一个问题,尤其是在使用Tomcat这样的Java应用服务器时。这个错误表明应用程序在 PermGen 区域(Permanent Generation)耗尽了...

    java.lang.OutOfMemoryError: PermGen space解决方案

    java.lang.OutOfMemoryError: PermGen space 解决方案

    解决Java_heap_space问题

    当程序创建的对象过多或单个对象占用内存过大时,如果没有足够的空闲内存来分配新对象,JVM就会抛出“OutOfMemoryError: Java heap space”错误。这可能是由于以下原因造成的: 1. **初始堆大小设置不当**:默认...

    java.lang.OutOfMemoryError解决办法

    当应用程序创建大量对象,且这些对象生命周期较长,或者无法及时释放时,可能会导致堆内存溢出,表现为`java.lang.OutOfMemoryError: Java heap space`。为了解决这个问题,可以通过`-Xms`和`-Xmx`参数来设置堆的...

    java.lang.OutOfMemoryError 解决方法

    java.lang.OutOfMemoryError: Java heap space 解决方法

    java.lang.OutOfMemoryError处理错误

    在Tomcat中java.lang.OutOfMemoryError: Java heap space异常处理: 1. Heap size JVM堆的设置是指Java程序运行过程中JVM可以调配使用的内存空间的设置。 2. JVM在启动的时候会自动设置Heap size的值,其初始空间...

    java.lang.OutOfMemoryError: PermGen space及其解决方法

    ### Java.lang.OutOfMemoryError: PermGen space 及其解决方法 #### 一、PermGen space 概述 在Java虚拟机(JVM)中,PermGen space(永久代)是用于存储类的信息、常量、静态变量等数据的区域。在Java 8之前,Perm...

    kettle内存溢出(Java heap space)以及解决方法.docx

    当程序创建新的对象并分配给堆时,如果堆空间不足,就会抛出`OutOfMemoryError: Java heap space`异常。Java应用程序可以通过设置JVM的启动参数来控制堆的大小,例如`-Xms`和`-Xmx`分别用于设置初始堆大小和最大堆...

    java内存溢出原因

    - **错误日志**:`java.lang.OutOfMemoryError: Java heap space` 和 `java.lang.OutOfMemoryError: GC overhead limit exceeded` - **原因**:创建大量对象或者内存泄露可能导致Java堆空间不足。例如,大数据加载...

    OutOfMemoryError_8种典型案例分享

    当堆内存不足以容纳新对象时,就会抛出java.lang.OutOfMemoryError: Java heap space错误。常见的解决方法是增加-Xmx参数值以扩大堆内存的大小。除此之外,还可能是由于代码问题导致内存消耗过大,例如内存泄漏或是...

Global site tag (gtag.js) - Google Analytics