springboot项目支持war部署tomcat

最近在学校spring boot 在网络上学校到简单的启动spring boot项目,也搭建好了,但时实际情况我的spring boot项目是要发布到tomcat中的,今天,随意打了个war包发布到tomcat中后,访问路径和在myeclipse中启动访问路径不同。且有一些在myeclipse中可以访问的链接都变成了404.

通过在网络上搜索找到了解决方案,同时根据自己的解决项目做对应的修改。这个博客地址找不到了,这里感到抱歉。

我的工具和项目搭建:maven+spring boot

开发工具:myeclipse

开始解决问题。

War包发布,关键在于maven的配置文件pop.xml。关键的地方:

1/打包方式的指定:

  <modelVersion>4.0.0</modelVersion>

  <groupId>gateway</groupId>

  <artifactId>gateway</artifactId>

  <packaging>war</packaging>打包方式指定war

  <version>0.0.1-SNAPSHOT</version>

2/在plugin标签中指定bulid方式位war

  <plugin>      

   <groupId>org.apache.maven.plugins</groupId>      

   <artifactId>maven-war-plugin</artifactId>bulid方式       

   <configuration>      

    <warSourceExcludes>src/main/resources/**</warSourceExcludes> 

    <warName>gateway</warName>      

   </configuration>      

  </plugin>

3/添加类似与web配置的spring启动方法。

必须与@SpringBootApplication注解类放到同一级目录下否则回无效果。

我的@SpringBootApplication注解类为

Application

/**

 * 支持tomcat的启动类

 * @author GuoPC

 *

 */

public class SpringBootStartApplication extends SpringBootServletInitializer {

 

  @Override

   protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

          // 注意这里要指向原先用main方法执行的Application启动类

          return builder.sources(Application.class);

      }

 

}

这些配置好,发布到tomcat中就可以正常启动了。

 

5/我在转换是遇到一个路径问题,在使用myeclipse开发是路径为index,这样发布回导致发布后路径404.修改为./index就好了。或者在路径前添加request.getcontextPath()的路径。同样可以解决问题。

原文地址:https://www.cnblogs.com/gynbk/p/7743813.html