| 今天本人處理了一起springboot項目生產(chǎn)session-out超時問題,項目采用下面方案四application.yaml配置session-out。先描述下問題,在測試環(huán)境通過改動application.yaml配置session-out,經(jīng)過設(shè)置不同值發(fā)現(xiàn)session-out配置生效,于是就直接設(shè)置了過期時間為8小時發(fā)布到了生產(chǎn)環(huán)境。中午接到客戶反應(yīng)項目過期時間設(shè)置較短,半小時不操作 就會話過期需要反復(fù)登陸。本人接到反饋以后百思不得其解,明明看到session-out設(shè)置了8小時為什么出現(xiàn)過期問題。接下來時間經(jīng)過反復(fù)查找問題發(fā)現(xiàn)是Tomcat中web.xml中session-out設(shè)置為30分,原來是因為在測試環(huán)境啟動項目未使用Tomcat,所以項目中application.yaml配置session-out是生效的。但是問題關(guān)鍵:項目生產(chǎn)環(huán)境發(fā)布是通過云服務(wù)(Docker K8s),也就是在通過Docker構(gòu)建鏡像時使用了tomcat的web.xml中的session-out,最終解決方法在Docker構(gòu)建鏡像時,將修改后的web.xml放入DockerFile中,再次構(gòu)建鏡像成功時web.xml會替換原Tomcat下的web.xml,問題最終得以解決。 seesion失效:從用戶登陸開始創(chuàng)建一個 session,當(dāng)用戶停止操作時間大于session-out設(shè)置時間則會話過期。 1.在工程的web.xml中設(shè)置 2.在web容器中設(shè)置(此處以tomcat為例) [html] view plain copy  <!-- ==================== Default Session Configuration ================= -->  
  <!-- You can set the default session timeout (in minutes) for all newly   -->  
  <!-- created sessions by modifying the value below.    -->  
	<session-config>  <session-timeout>30</session-timeout>  
	</session-config> 3.通過Java代碼設(shè)置 4.springboot項目application.yaml設(shè)置 server:
   port: 8089
   session:  timeout: 1800  #以秒為單位 | 
|  |