springMVC controller未配置多实例引起的问题
前端采用MMGrid框架,写了一个列表,但在高并发情况下,或者自己连续刷新页面时,MMgrid会提示加载数据异常,这个开发人员不知道怎么回事,控制台出现NullException,一堆错误:
java.lang.NullPointerException
atorg.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:216)
atorg.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:460)
atorg.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:368)
atorg.apache.coyote.http11.InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(InternalOutputBuffer.java:241)
atorg.apache.coyote.http11.filters.ChunkedOutputFilter.doWrite(ChunkedOutputFilter.java:119)
atorg.apache.coyote.http11.AbstractOutputBuffer.doWrite(AbstractOutputBuffer.java:192)
atorg.apache.coyote.Response.doWrite(Response.java:533)
atorg.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:373)
仔细查看这个错误,发现出错的的对象ID都是同一个,很显然output时,因为同一个实例在IO输出时,来不及写完,就出错了,解决的办法很简单,就是在controller上,加上@Scope("prototype"),让controller为多实例,实际上在弄好controller时,也是推荐将它设置为多实例,单实例运行,很容易产生错误