Spring Boot打war包部署遇到的坑
2018-08-17 本文已影响0人
林_Han
Spring Boot解决跨域问题
- 在Controller层加入
@CrossOrigin
注解即可
部署
- pom.xml配置修改
<packaging>jar</packaging>
//修改为
<packaging>war</packaging>
- 排除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);
}
}
- 在IDEA中使用
mvn clean
命令清除旧的包,并使用mvn package
生成新的war包 - 通过winScp将war包拷贝到tomcat的webapps目录下
- 重启tomcat服务器,tomcat重启时会自动解析webapps目录下的war包,访问通过
服务器名:端口/项目名/接口
访问项目,如:
Tomcat服务器目录
通过http://192.168.**.**:****/demo1/hello
访问: