开发者社区> 问答> 正文

服务器上下载文件出现session commited异常

应用信息:
tomcat7,jdk1.7,springmvc+freemarker,阿里云的服务器,
在springmvc的配置文件中配置了静态文件过滤.

其他的访问全部被拦截:


<property name="mappingURL" value=".*/login/.*" />


我把SessionTimeoutInterceptor现在全部返回true
现在我在static文件夹放入一个apk文件.
通过我自己的域名,可以直接访问下载. 但是后台会报错:
SEVERE: Servlet.service() for servlet [springMVC] in context with path [] threw exception [javax.servlet.ServletException: java.lang.IllegalStateException: Cannot create a session after the response has been committed] with root cause

java.lang.IllegalStateException: Cannot create a session after the response has been committed

日志记录的错误:
org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Broken pipe
xxxx

意思很明确, response之后创建session出错.

但是这个apk文件我是放入了static中了, 配置是不拦截这个文件夹中的任何文件的. 为何还有session的创建之类的?
我本地测试访问时没有报错的. 但是到了阿里云就有问题了. 文件还是可以继续下载, 但是日志总是记录报错信息.

展开
收起
菜豆先生 2016-08-10 19:53:43 3568 0
1 条回答
写回答
取消 提交回答
  • 这个错误和你的文件放哪没有关系,是请求结束后你的程序又去试图访问SessionContext里的东西。检查下你的Filter,看是不是有这种情况,如果有,看看是不是可以用ApplicationContext而不是SessionContext。

    2019-07-17 20:03:15
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS块储存产品全面解析 立即下载