java常见的报错。请赐教!

来源:百度知道 编辑:UC知道 时间:2024/06/15 11:31:03
执行项目流程时,有时会突然报出这个错,都不知道怎么回事?
请高手给我说说!

javax.servlet.ServletException: Java heap space
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:300)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:196)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1158)
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
org.ecside.filter.ECSideFilter.doFilter(ECSideFilter.java:188)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
是不是

是啊,下面说的就是这个问题,虚拟机的内存不够用,崩溃了,要在jdk中修改虚拟机的内存上限。

一般出现这种异常的原因是:
使用Java程序从数据库中查询大量的数据时出现异常:
java.lang.OutOfMemoryError: Java heap space
在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。
JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。
解决办法:
tomcat_home/bin下catalina.bat(win)或catalina.sh(linux)执行代码前加上:
set JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx512m

程序里面有用到循环吗,有可能是循环出问题了