javax.servlet.ServletException: Servlet execution threw an exceptionjava.lang.OutOfMemoryError
<script language="javascript">
var isOrderBy = "false";//操作所有checkbox
function operateAll() {
    for(i=0;i<"${pageVariable.recordCountCurrentPage}";i++){
        document.all("checkbox"+i).checked=document.all("checkboxFirst").checked;
    }
}//资产种类变化时触发
function changeAssetClass(){
    if(document.all("mapData(assetClass)").value==1){
        document.all.assetKindSpan.style.display="none";
document.all.assetIdSpan.style.display="none";
document.all.barcodeSpan.style.display="none";
    }else{
        document.all.assetKindSpan.style.display="";
document.all.assetIdSpan.style.display="";
document.all.barcodeSpan.style.display="";
    }
}//判断数字是否合法:
function judgeNum(i){
    var oldNum = new Number(document.all("oldNumber"+i).value);
    var newNum = new Number(document.all("mapData(NUMBER"+i+")").value);
    //alert(newNum);
    if(isNaN(newNum)){
        alert("请输入有效数字");
        document.all("mapData(NUMBER"+i+")").value=oldNum;
        document.all("mapData(NUMBER"+i+")").focus();
        document.all("mapData(NUMBER"+i+")").select();
        return;
    } 
    if(newNum>oldNum){
        alert("输入数值过大");
        document.all("mapData(NUMBER"+i+")").focus();
        document.all("mapData(NUMBER"+i+")").value=oldNum;
        return;
    } 
    if(newNum<=0){
        alert("输入数字应大于0");
        document.all("mapData(NUMBER"+i+")").focus();
        document.all("mapData(NUMBER"+i+")").value=oldNum;
        return;
    }         
}//出库
function submitForm(){
    var j;
    for(i=0;i<"${pageVariable.recordCountCurrentPage}";i++){
        if(document.all("checkbox"+i).checked==true){
            j=1;
            break;
        }
    }
if(isOrderBy=="false"){
if(j!=1){
alert("请选择出库物品");
return;
}
if(document.all("mapData(outStorDate)").value==null || document.all("mapData(outStorDate)").value==""){
alert("请选择出库日期");
return;
}
if(document.all("mapData(useDept)").value==null || document.all("mapData(useDept)").value==""){
alert("请选择使用部门");
return;
}    
if(document.all("mapData(busiAim)").value==null || document.all("mapData(busiAim)").value==""){
alert("请选择业务目的");
return;
}
if(document.all("mapData(assetClass)").value==0 || document.all("mapData(assetClass)").value==2){
if(document.all("mapData(employee)").value==null || document.all("mapData(employee)").value==""){
alert("请选择使用人");
return;
}        
if(document.all("mapData(useType)").value==null || document.all("mapData(useType)").value==""){
alert("请选择使用类型");
return;
}
}
}
    document.all("method").value="simpOutStorDo";
if(isOrderBy=="true"){
document.all("method").value="simpOutStorInput";
}
    document.forms[0].submit();
}
<TABLE>
  <c:if test="${!empty pageVariable and pageVariable.recordCount > 0}">
  <TR>
<TD width="3%" class="td_title">
<html:hidden property="assetClassId" value="${assetClassId}" write="false"/>
<input type="checkbox" name="checkboxFirst" onclick="javascript:operateAll();" checked="true">
</TD>
<TD width="10%" class="td_title"><a href="javascript:simpleOutStorOrderBy('ASSET_TYPE_ID')">资产型号</a></TD>
<c:if test="${assetClassId=='1'}">
<TD width="7%" class="td_title"><a href="javascript:simpleOutStorOrderBy('NUMBER')">数量</a></TD>
</c:if>
<TD width="8%" class="td_title"><a href="javascript:simpleOutStorOrderBy('STORAGE_ID')">所属仓库</a></TD>
<c:if test="${assetClassId=='0' or assetClassId=='2'}">
<TD width="13%" class="td_title"><a href="javascript:simpleOutStorOrderBy('BARCODE')">总行条形码</a></TD>
<TD width="13%" class="td_title"><a href="javascript:simpleOutStorOrderBy('TEMP_BARCODE')">临时条形码</a></TD>
<TD width="11%" class="td_title"><a href="javascript:simpleOutStorOrderBy('ASSET_ID')">设备编号</a></TD>
<TD width="7%" class="td_title"><a href="javascript:simpleOutStorOrderBy('UNIT_PRICE')">单价</a></TD>
<TD width="10%" class="td_title"><a href="javascript:simpleOutStorOrderBy('PURCHASE_DATE')">购置日期</a></TD>
<TD width="10%" class="td_title"><a href="javascript:simpleOutStorOrderBy('PROPERTY')">物理属性</a></TD>
<TD width="8%" class="td_title"><a href="javascript:simpleOutStorOrderBy('MEMO')">备注</a></TD>
</c:if>
  </TR>
  <c:forEach var="i" begin="0" end="${pageVariable.recordCountCurrentPage - 1}">
  <TR>
<TD height="21"><input type="checkbox" id="checkbox${i}" name="orderNumber" value="${i}" checked="true"><c:out value="${i+1}"/></TD>
<TD><html:hidden property="mapData(ASSET_TYPE_ID${i})" value="${fn:trim(outStorRes[i].ASSET_TYPE_ID)}" write="false"/> &nbsp;<camDisplay:showDesc tableName="ASSET_TYPE" field="ASSET_TYPE_NAME" condition="ASSET_TYPE_ID='${outStorRes[i].ASSET_TYPE_ID}'"/> </TD>
<c:if test="${assetClassId=='1'}">
<TD><html:text property="mapData(NUMBER${i})" value="${fn:trim(outStorRes[i].NUMBER)}" size="8" styleClass="input_style" onchange="judgeNum(${i});" /> <html:hidden property="oldNumber${i}" value="${fn:trim(outStorRes[i].NUMBER)}" write="false"/> </TD>
</c:if>
<TD><html:hidden property="mapData(STORAGE_ID${i})" value="${fn:trim(outStorRes[i].STORAGE_ID)}" write="false"/> &nbsp;<camDisplay:showDesc tableName="STORAGE" field="STORAGE_NAME" condition="STORAGE_ID='${outStorRes[i].STORAGE_ID}'"/> </TD>
<c:if test="${assetClassId=='0' or assetClassId=='2'}">
<TD><c:out value="${outStorRes[i].BARCODE}" /></TD>
<TD><c:out value="${outStorRes[i].TEMP_BARCODE}" /></TD>
<TD><c:out value="${outStorRes[i].ASSET_ID}" /></TD>
<html:hidden property="mapData(ASSET_ID${i})" value="${fn:trim(outStorRes[i].ASSET_ID)}" write="false"/>
<html:hidden property="mapData(USE_DEPT_ID${i})" value="${fn:trim(outStorRes[i].USE_DEPT_ID)}" write="false"/>
<html:hidden property="mapData(USE_EMPL_ID${i})" value="${fn:trim(outStorRes[i].USE_EMPL_ID)}" write="false"/>
<TD><c:out value="${outStorRes[i].UNIT_PRICE}" /></TD>
<TD><c:out value="${outStorRes[i].PURCHASE_DATE}" /></TD>
<TD><c:out value="${outStorRes[i].PROPERTY}" /></TD>
<TD><c:out value="${outStorRes[i].MEMO}" /></TD>
    </c:if> </TR>
  </c:forEach>
  </c:if>
</table>
<br>
<TABLE class="tb_de_info">
  <TR>
    <TD class="td_info_show"><div align="center"> <img src="../images/post.gif" style="CURSOR: hand" o onClick="submitForm()" width="75" height="23"> </div></TD>
  </TR>
</table>
</html:form>
数据量不大,50条数据,单击就报错,为什么?

解决方案 »

  1.   

    集合类中有对对象的引用,使用完后未清空,使得JVM不能回收
      

  2.   

    java.lang.OutOfMemoryError这个错误我是碰了好多次了,最近还是解决了。http://blog.csdn.net/chow__zh/article/details/7701476具体解决方法请查看我的文章吧。
      

  3.   

    java.lang.OutOfMemoryError,单看这个问题,就是JVM内存不够了。
    按说50条数据也不至于不够哦。你的单条数据占内存比较大吗?还是foreach循环里面出问题了?
      

  4.   

    outofmemeryException   是属于ERROR类,  很明显  内存溢出是因为JVM的运行时内存不够而引起,而且你是属于分页出现的问题,我想你是否应该看看  在 服务器端运行查询时,分页是否条数过多,或者在接口交互时,提交的数据过大,而引起java容器在封装数据时溢出呢?
      

  5.   

    去看看这篇文章自己分析outofmemoryhttp://blog.csdn.net/yhc13429826359/article/details/7711911
      

  6.   

    我知道数据量大。怎么解决。不能分页和JVM内存大小没有太大关系吧?