JSP输出在680 KB之后以NullPointerException结束

JSP输出在680 KB之后以NullPointerException结束,jsp,nullpointerexception,websphere,response,Jsp,Nullpointerexception,Websphere,Response,我有一个带有scriplets的遗留JSP,我正在WebSphere7.0.0.13上的应用程序中对其进行测试。相同的JSP和完全相同的数据在WebLogic10.3.2中正常工作 JSP使用代码生成大量HTML输出+javascript。在WebSphere中,JSP输出中间的NulpPoExtExchange始终失败。每次失败时,页面中大约680 KB的数据都会失败 如果我从浏览器查看源代码,最后一行输出会被截断,类似这样 “document.getElementById('start.12

我有一个带有scriplets的遗留JSP,我正在WebSphere7.0.0.13上的应用程序中对其进行测试。相同的JSP和完全相同的数据在WebLogic10.3.2中正常工作

JSP使用代码生成大量HTML输出+javascript。在WebSphere中,JSP输出中间的NulpPoExtExchange始终失败。每次失败时,页面中大约680 KB的数据都会失败

如果我从浏览器查看源代码,最后一行输出会被截断,类似这样

“document.getElementById('start.123.12345.67891.123123123').appendChild(divTag);exercror 500:java.lang.NullPointerException

没有其他输出。日志从我的JSP报告未捕获的NullPointerException

大部分输出是使用页面的JspWriter
out.println();
在scriptlet内部生成的

我尝试为autoflush=true添加页面指令,认为这可能是缓冲区问题,但仍然失败。

在使用检查生成的java文件并使用NullPointerException堆栈跟踪中的行号后,我解决了这个问题

原始开发人员在文件末尾的scriplet中将JspWriter设置为null

<% 
  out = null;
%>
</html>
如果我注释掉JSP文件中的
out=null;
语句,这就解决了问题


仅供参考-我还创建了一个测试JSP,通过循环并打印到JspWriter,它的输出远远超过680 KB。我发现,无论输出的大小,我都无法复制相同的NullPointerException。

你有Stacktrace来计算JSP中的确切行吗?如果我从Stacktrace到g为行生成.java文件,它是:
out.write(_jsp_string55)
这是_jsp_string55变量
private final static char[]\u jsp_string55=“\r\n\r\n.tocharray();
out = null;
out.write(_jsp_string55);