Caused by: java.lang.IllegalStateException: Cannot create a session after the response has been committed
at org.apache.catalina.connector.Request.doGetSession(Request.java:3058) ~[catalina.jar:7.0.73]
at org.apache.catalina.connector.Request.getSession(Request.java:2430) ~[catalina.jar:7.0.73]
at org.apache.catalina.connector.RequestFacade.getSession(RequestFacade.java:897) ~[catalina.jar:7.0.73]
检查代码中的处理session的代码是不是放在了response输出之后了。
request.getSession(true).setAttribute(sessionKey, randomString);
response.setHeader("Pragma", "No-cache");
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setContentType("image/jpeg");
奇怪的是开发windows环境tomcat7无问题,而发布到linux下有问题。环境如下 :
C:\Users\admin>java -version
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
Server version: Apache Tomcat/7.0.75
Server built: Jan 18 2017 20:54:42 UTC
Server number: 7.0.75.0
OS Name: Windows 8.1
OS Version: 6.3
Architecture: amd64
JVM Version: 1.7.0_79-b15
JVM Vendor: Oracle Corporation
# java -version
java version "1.7.0_75"
Java(TM) SE Runtime Environment (build 1.7.0_75-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.75-b04, mixed mode)
Server version: Apache Tomcat/7.0.73
Server built: Nov 7 2016 21:27:23 UTC
Server number: 7.0.73.0
OS Name: Linux
OS Version: 2.6.32-431.23.3.el6.x86_64
Architecture: amd64
JVM Version: 1.7.0_75-b13
JVM Vendor: Oracle Corporation