2013-8-14 17:40:58 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:216)
at java.lang.StringBuilder.toString(StringBuilder.java:430)
at org.apache.struts2.json.JSONUtil.writeJSONToResponse(JSONUtil.java:208)
at org.apache.struts2.json.JSONResult.writeToResponse(JSONResult.java:206)
at org.apache.struts2.json.JSONResult.execute(JSONResult.java:170)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:211)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)急啊,急啊....

解决方案 »

  1.   

    内存溢出,要么尝试调大JVM内存 “-Xmx1024m”要么就是内存泄漏了,要检查代码。
      

  2.   


    内存溢出,要么尝试调大JVM内存 “-Xmx1024m”都设置了,没用...
    我阐述下: 我第一次查询主页页面 没问题,然后我再转向另一个页面用hql保存了2张表数据后。  然后返回主页查询就报错了。 
      

  3.   

    检查下你返回了多少东西?是不是返回了一个巨大的对象,导致自动生成JSON的时候内存溢出了?
      

  4.   

    最好在溢出时堆转储
    然后用MemoryAnaly分析
      

  5.   


    内存溢出,要么尝试调大JVM内存 “-Xmx1024m”都设置了,没用...
    我阐述下: 我第一次查询主页页面 没问题,然后我再转向另一个页面用hql保存了2张表数据后。  然后返回主页查询就报错了。 查询返回的数据太多? 或者数据存到了session里无法释放?
      

  6.   

    开启 jvisualvm.exe 跟踪下,然后再查询主页。
      

  7.   


    内存溢出,要么尝试调大JVM内存 “-Xmx1024m”都设置了,没用...
    我阐述下: 我第一次查询主页页面 没问题,然后我再转向另一个页面用hql保存了2张表数据后。  然后返回主页查询就报错了。 查询返回的数据太多? 或者数据存到了session里无法释放?
    在导入excel的时候 的确是存到了session中,但是在提交数据的时候。 session就被我删除了。 
      

  8.   

    调大JVM内存不是最好的办法,最好的办法还是检查自己的代码。
      

  9.   

    关联的 表删除 就好了
    并且是封装成json  ,一看就知道是怎么回事了。。因为hibernate的级联关系 会导致无限死循环,这个时候程序不知道怎么办,,就一直getObject() 然后这个object再继续 getList()....直到内存溢出为止。怎么解决,在param中指定root属性就好了。。