我有一个Java Web应用程序(strust2),它确实使用struts2-json
插件来处理json
个请求。最近,我发现了一个非常奇怪的错误Java Heap Space
。
这是我的struts.xml
<action name="saveSigned"
class="org.xxx.xxx.xxx.action.marriage.SaveSigned">
<interceptor-ref name="json">
<param name="enableSMD">true</param>
</interceptor-ref>
<result type="json">
<param name="contentType">application/json</param>
</result>
<param name="requiredAuthorities">F_ADD_MARRIAGE</param>
</action>
生成JSON数据并将其发送到此操作saveSigned
。这是正在发送的JSON数据:
encodedBase64: “somebase64encodeddata”, UUID: “someUUID”
所以我只发送这两个变量,由struts2-json
插件自动处理。根据{{1}},我从uuId
获取了一些数据..这就是我收到错误的地方。我不明白为什么它会database
给我jave heap error
,因为在代码中我不使用它。
这是抛出此错误的代码:
struts2-json
错误本身
java.lang.OutOfMemoryError:Java堆空间 at java.util.Arrays.copyOf(Arrays.java:3332) at java.lang.AbstractStringBuilder.expandCapacity(AbstractStringBuilder.java:137) at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:121) at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:421) 在java.lang.StringBuilder.append(StringBuilder.java:136) 在java.lang.StringBuilder.append(StringBuilder.java:131) 在org.apache.struts2.json.JSONWriter.add(JSONWriter.java:578) 在org.apache.struts2.json.JSONWriter.array(JSONWriter.java:498) 在org.apache.struts2.json.JSONWriter.process(JSONWriter.java:158) 在org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134) at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:401) 在org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:231) 在org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178) 在org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168) 在org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134) 在org.apache.struts2.json.JSONWriter.array(JSONWriter.java:492) 在org.apache.struts2.json.JSONWriter.process(JSONWriter.java:158) 在org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134) at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:401) 在org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:231) 在org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178) 在org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168) 在org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134) 在org.apache.struts2.json.JSONWriter.array(JSONWriter.java:492) 在org.apache.struts2.json.JSONWriter.process(JSONWriter.java:158) 在org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134) at org.apache.struts2.json.JSONWriter.add(JSONWriter.java:401) 在org.apache.struts2.json.JSONWriter.bean(JSONWriter.java:231) 在org.apache.struts2.json.JSONWriter.processCustom(JSONWriter.java:178) 在org.apache.struts2.json.JSONWriter.process(JSONWriter.java:168) 在org.apache.struts2.json.JSONWriter.value(JSONWriter.java:134) 在org.apache.struts2.json.JSONWriter.array(JSONWriter.java:492)
因此,marriage = xxxRegisterService.getMarriageUuId(getUuId());
只分配1个简单文本struts2-json
..并基于uuId
我从数据库中获取一些数据,然后将其分配给变量。
奇怪的是,一切正常。我可以看到数据库中的所有更改,应用程序返回uuId
但仅在一分钟之后它会抛出此错误..