在做Strut2 +WS 服务器集群文件存储里,先天下班前测试上传了十几个照片都没有问题,第二天做联调的时候,前台总是出现下面错误,我也一时傻乎乎地弄了两个时间,忘记了Struts2最基础的常识-------默认上传文件大小为2M,超过再表单无法提交,报如下错误:
No result definedfor action com.rtkj.zhxq.action.UplocadPhotoAction and result input
No result defined for actioncom.rtkj.zhxq.action.UplocadPhotoAction and result input atcom.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:375)at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:277)atcom.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)atorg.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)atcom.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)atcom.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)atcom.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)at
配置了一下Strut2的上传文件大小后,上传了几个文件一切正常,正高兴时,远程存储服务器(Tomcat6)突然报了一个内存溢出错误。
SOAP报错:
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.generalException
faultSubcode:
faultString:java.lang.OutOfMemoryError: Java heap space; nested exception is:
java.lang.OutOfMemoryError:Java heap space
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostname:ltzh_man
java.lang.OutOfMemoryError: Java heap space; nestedexception is:
java.lang.OutOfMemoryError:Java heap space
atorg.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
atorg.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
atorg.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
atcom.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(UnknownSource)
…………
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
atjava.lang.Thread.run(Unknown Source)
log4j:WARN No appenders could be found for logger(com.rtkj.zhxq.action.UplocadPhotoAction).
log4j:WARN Please initialize the log4j system properly.
看了一个上传文件为20M,想到了上次的教训,TOMCAT6.0默认内存大小:
TotalMemory:63M
FreeMemory:3M
MaxMemory:63M
修改$tomcat_home%/bin/catalina.bat
在第一行前加下初始化内存设置语句(可根据自己机器具体设置),Xms为初始内存,Xmx为最大内存。
set JAVA_OPTS=-Xms256m -Xmx512m
设置后:
TotalMemory:254M
FreeMemory:243M
MaxMemory:508M
这样就OK啦。