布置前须知隐含知识:
1. SpringBoot 如果在本地开发是使用内置 tomcat 进行测试的
2. SpringBoot 使用war包布置到linux中的tomcat中,需要添加外置tomcat的支持以及Servlet依赖(用于路径跳转方面)
3. 不同的SpringBoot布置到tomcat中,出现内部无法跳转的问题,不单单可能是配置文件的问题,还可能是tomcar本身支持
*4. SpringBoot需要java的运行环境
5. SpringBoot本地访问没有项目名,但是可以在Application.properties中设置基地址
重头戏:
当你在本地IDEA或者STS等运行SpringBoot项目成功,开始的步骤,以IDEA为例,进行一步一步配置。
--> *pom.xml文件中添加如下配置:
-->*IDEA打包的方式为war包(部署到tomcat中,如果是直接运行的就是jar包,之后在linux上面直接使用jar运行方式,就OK了)
---> *IDEA启动项目:
---> *IDEA打包项目:mvn package(如果之前打包过:mvn clean(去除之前生成的target以及下面的文件,刷新一下项目))
--> *IDEA拷贝项目(war)至tomcat中的webapps文件下面(linux的tomcat下自动解压(有一行配置设置两个true,重启即可))
部署bug:
1.访问界面出现,但是跳转出现404异常,手动添加项目名在跳转地址上后,出现成功界面
配置基地址:application.yml: ---- > server:servlet:context-path: /项目名
application.properties: --- > servlet:context-path: /项目名
2.访问界面出现404异常,需要添加依赖(原因不明)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-legacy</artifactId>
<version>1.1.0.RELEASE</version>
</dependency>
3.外界访问的得到Springboot四大直接访问的位置下的静态资源,内部跳转至Controller却出现404问题?
解决:1.可能是linux下tomcat的Springboot项目,没有外置tomcat的支持依赖
2.可能是SpringBoot项目,没有Servlet的支持
3.可能是tomcat版本太低,SpringBoot版本太高
4.本地window下测试Springboot项目可以使用,但是一旦部署到linux下的tomcat的webapps文件下,就出现了问题?
解决:1.linux下的tomcat即使和window下的tomcat一致,但是建议linux下的tomcat高一点点,比如:本地是8.5.4版本的,linux下的建议是8.5.42的
2.linux下的相关端口访问,或者说是网关/安全组没有放开
个人经验:
1. SpringBoot项目建议现在本地的tomcat下面跑,之后再去linux下面部署
2.SpringBoot 1.5左右的使用8.5.4差不多,SpringBoot 2.2左右的使用8.5.42差不多(建议tomcat9以上)
3.tomcat最好去官方下载一个