webphere抛出抛出异常:java.lang.IllegalStateException: SRVE0199E: 已获取了输出流
做了个file_writer.jsp读取文本文件,在tomcat下运行正常,部署到webphere下就在执行的时候也能读到文件,但是在尾部出现很多错误代码.
抛出异常:java.lang.IllegalStateException: SRVE0199E: 已获取了输出流
等等...
看了很多文章,说是用servlet解决,请问该如何解决呢,或者有什么别的办法 --------------------编程问答-------------------- 输出流没有关闭 --------------------编程问答-------------------- 遇到同样问题。哪位好心人指点指点? --------------------编程问答-------------------- 关注 接分 --------------------编程问答-------------------- 你的这个问题和这句有关
response.getOutputStream();
这时侯你已经取到输出流.
但是, 应用服务器(websphere什么的)在你的JSP程序后面增加了finally处理, 自动去取输出流, 这时便产生了上面的错误.
[对策]
1. 改用servlet就可以避免发生这样的问题, 这是把握最大的解决方法
2. 根据我的经验, 取得输出流的地方是这样的
PHP code:
finally {
if (_jspxFactory != null) _jspxFactory.releasePageContext(_jspx_page_context);
}
因此, 你只要把_jspxFactory设成null就可以避免出错, 如下例
PHP code:
<%
bos = new BufferedOutputStream(response.getOutputStream());//你得到输出流的语句
...
_jspxFactory = null;//重点是加上这句
%>
此问题要感谢lillikut牛人的指导。
补充:企业软件 , WebSphere