外部Tomcat部署Spring boot自动关闭的解决办法

原创
2017/05/05 09:54
阅读数 1.7W

在外部Tomcat 8.5.12下部署Spring boot 1.4.3,系统运行了一段时间后tomcat会自动关闭,经研究发现是Srping内嵌的Tomcat在捣乱,具体的原因待查,解决办法倒是先蒙出来了:把内嵌tomcat去掉之后便正常了。

由于开发环境需要内嵌Tomcat,而测试或生产环境实用的是外部Tomcat,因此如下直接将spring-boot-starter-web中去掉内嵌的tomcat会导致开发环境没有容器可用了:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
      <exclusions>
        <exclusion>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
      </exclusion>
</dependency>

在spring-boot-starter-web中tomcat依赖之后,独立增加tomcat依赖,注意这里有个自定义的${jarscope}需要在profiles中配置:

<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>${jarscope}</scope>
</dependency>

profiles配置中在开发环境增加<jarscope>compile</jarscope>,在测试和生产环境增加<jarscope>provided</jarscope>,这样就可在开发环境中保留内嵌tomcat,在生产和测试环境中去除内嵌tomcat:

<profiles>
    <profile>
      <id>development</id>
      <properties>
        <environment>development</environment>
        <jarscope>compile</jarscope>
      </properties>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
    </profile>
    <profile>
      <id>test</id>
      <properties>
        <environment>test</environment>
        <jarscope>provided</jarscope>
      </properties>
    </profile>
    <profile>
      <id>release</id>
      <properties>
        <environment>release</environment>
        <jarscope>provided</jarscope>
      </properties>
    </profile>
  </profiles>
展开阅读全文
打赏
0
3 收藏
分享
加载中
打赏
0 评论
3 收藏
0
分享
返回顶部
顶部