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