我一直在研究有关异常的SO
getOutputStream() has already been called for this response
我知道基本上可能是因为getWriter()
和getOutputStream()
调用一个HttpServletResponse
,因为混合文本和其他MIME类型一起返回客户端。
但是,我不确定是否发生此异常,如果重复发生,可能导致服务器崩溃? (因为getWriter()
或getOutputStream()
缓冲区中的数据会变成鬼影?
答案 0 :(得分:2)
这是一个IllegalStateException,RuntimeException。
RuntimeException
是一个unchecked异常,根本不会导致系统/服务器崩溃。
IllegalStateException
异常的根本原因是java servlet在提交响应后尝试写入输出流(响应)。
最好确保在转发或重定向完成后没有内容添加到响应中以避免IllegalStateException
。可以通过在转发或重定向语句旁边包含return
语句来完成。
有关更多解决方案,请查看JSP-Servlet Q&A » Development » IllegalStateException
答案 1 :(得分:1)
我说这取决于servlet容器,但通常servlet代码中的异常不会导致整个服务器崩溃。
如果您担心这里存在可能的内存泄漏,在这种情况下也不太可能发生。这个例外只是合同执行。 servlet容器告诉您应该使用getOutputStream()或getWriter(),但在单个请求期间不应同时使用。