Spring Boot打war包部署遇到的坑

2018-08-17  本文已影响0人  林_Han

Spring Boot解决跨域问题

部署

  1. pom.xml配置修改
<packaging>jar</packaging>
//修改为
<packaging>war</packaging>
  1. 排除spring boot中内嵌的tomcat依赖包:
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <scope>provided</scope><!-- 打成war的时候打开注释,本地开发用内嵌tomcat时加上注释 -->
</dependency>

3. 如果是发布jar包,程序的入口时main函数所在的类,使用@SpringBootApplication注解;
如果是war包发布,需要增加SpringBootServletInitializer子类,并重写其configure方法,或者将main函数所在的类继承SpringBootServletInitializer子类,并重写configure方法

当时打包为war时上传到tomcat服务器中访问项目始终报404错就是忽略了这个步骤!!!

@SpringBootApplication
//继承SpringBootServletInitializer子类
public class Demo2Application extends SpringBootServletInitializer {

    //重写configure方法
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Demo2Application.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(Demo2Application.class, args);
    }
}
  1. 在IDEA中使用mvn clean命令清除旧的包,并使用mvn package生成新的war包
  2. 通过winScp将war包拷贝到tomcat的webapps目录下
  3. 重启tomcat服务器,tomcat重启时会自动解析webapps目录下的war包,访问通过服务器名:端口/项目名/接口访问项目,如:
    Tomcat服务器目录

通过http://192.168.**.**:****/demo1/hello访问:

访问效果
上一篇下一篇

猜你喜欢

热点阅读