一、问题记录产生原因
1.1 pom中直接引入后clean->package
<packaging>war</packaging>
1.2 问题记录
打包放在tomcat的webapps进行部署,nginx配置后访问接口一直出现400的错误,本地运行又可以访问,想到问题可能就出在打包方式上了。
查询网上多种方式,最后记录一种解决方式进行记录。
二、解决方式
2.1 步骤一:pom修改
<!-- web控制-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
2.2 步骤二:SpringBoot启动类的同一层级新增ServletInitializer.java
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
//Application的类名
return application.sources(DemoApplication.class);
}
}
2.3 步骤三:clean->package
并将target下的war上传到tomcat的webapps目录下并重新访问,访问成功,注意带上webapps下的文件名
====================到此问题解决====================
补充:也可以修改nginx的配置端口后加上文件名,这样访问地址时候文件名就可以去掉了,具体可参考linux下nginx安装、操作、配置、问题及解决