首页 文章

当部署到tomcat作为战争时,不使用application.yml中的server.session.timeout

提问于
浏览
3

我在application.yml中有这个配置

server:
    contextPath: /appname
    session:
        timeout: 7200  # 2 hours in seconds

当我在Intellij IDEA中运行时,这工作正常,但是当我将构建.war文件部署到tomcat实例时,这将被忽略 . 这是一个错误还是预计不会像这样工作?

此外,我似乎无法找到可以在application.yml中编写的内容的规范 . 有谁知道这可以找到的地方?

application.groovy配置文件怎么样?似乎找不到这个规格?

我的环境:

  • Grails版本:3.2.8

  • Gradle版本:3.4.1

  • Intellij IDEA版本:2017.1.2

  • Tomcat版本:8.0.26 JDK版本:1.8.0_45

1 回答

  • 2

    将Grails 3应用程序部署到独立的tomcat应用程序时,不应使用springboot server.session.timeout 配置属性 . 它只适用于嵌入式服务器 .

    Spring boots - sever.session.timeout - Embedded Server configuration

    要在SpringBoot应用程序中配置会话超时(Grails 3应用程序构建在SpringBoot应用程序之上),部署到独立的tomcat中,您有两种选择:

    A) 该tomcat实例中部署的每个应用程序的超时 .

    您可以直接在tomcat配置文件中编辑会话超时:

    $TOMCAT_HOME/conf/web.xml
    

    寻找块:

    <!-- ==================== 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>
    

    B) 您可以在Grails 3应用中添加web.xml文件,其中包含每个应用所需的超时时间 .

    使用以下内容在路径'src / main / webapp / WEB-INF / web.xml'中创建文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     <session-config>
         <session-timeout>30</session-timeout>
     </session-config>
    </web-app>
    

相关问题