今天做excel导出的时候,本地环境是tomcat,正式环境是weblogic:本地运行没有问题,正式环境报错如下(但是可以运行):
java.io.IOException: response already committed
at weblogic.servlet.jsp.JspWriterImpl.clear(JspWriterImpl.java:81)
at jsp_servlet._vote._sjd.__exportexcel._jspService(__exportexcel.java:466)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:34)
at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.huilin.commons.filter.CleanupDatabaseConnectioniFilter.doFilter(CleanupDatabaseConnectioniFilter.java:44)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.huilin.xss.filter.LoginFilter.doFilter(LoginFilter.java:61)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.huilin.xss.filter.XssFilter.doFilter(XssFilter.java:72)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.huilin.xss.filter.PrivilegeCheckFilter.doFilter(PrivilegeCheckFilter.java:139)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at com.huilin.commons.filter.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:122)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(Unknown Source)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
查阅并浏览网站发现这是tomcat和weblogic的区别
在调用response之前加上:
response.reset();
在本地tomcat的jsp页面中:需加入代码:
out.clear(); out = pageContext.pushBody();而在weblogic中加上这样的代码:就会报以上错误
jsp页面的代码如下: