SpringBoot默认支持Tomcat7及以上版本(SpringBoot默认支持servlet3.1版本及以上,Tomcat6只支持到servlet2.5)
测试环境:jdk1.8 + tomcat7+SpringBoot2.1.0.M1 、 jdk1.8+ tomcat8.5+SpringBoot2.1.0.M1
1、在pom.xml文件中,把打包形式jar改为war
war
2、在pom.xml文件下去除内置tomcat
这里配置有两种方法,一种是
org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-tomcat
这种方法会直接移除内置tomcat,即本地开发也需要用自己配置的tomcat才行,用main方法运行会报错。可参考最后一步进行修改,使用自己配置的tomcat进行开发调试;
另一种方式是,添加
org.springframework.boot spring-boot-starter-tomcatprovided
这种方法依然可以使用内置的tomcat进行开发调试。
添加servlet-api有两种方式,选其一即可
javax.servlet javax.servlet-api3.1.0 provided
org.apache.tomcat tomcat-servlet-api8.0.36 provided
4、修改启动类
原先启动SpringBoot是通过main方法启动的,现在需要让启动类继承SpringBootServletInitializer,并重写configure方法,如
5、在pom.xml的build中添加项目打包后的名称
6、打包部署(1)、命令行打包
以命令行的形式进入到项目的目录下,输入如下命令(需在环境变量中配置maven路径)
mvn clean package
出现如下图示即说明打包成功
右键点击项目 - Run as - Maven build ,在弹窗中的Goals输入package,点击Run
即可自动打包。打包完成界面与命令行打包一致。
打包文件在项目路径下的target目录里面,如
放置到tomcat的webapps目录下,即可直接运行,需要注意的是,访问路径需要加上项目名的路径,如下图
在第二步的时候,如果采用第一种方法移除了内置tomcat的话,在项目中运行时就需要选择Run on server了。然后选择tomcat服务器(需tomcat7以上),这时候有可能会遇到下面的错误。
出现这个错误的解决方法是,右键点击项目 - properties - Project Facets ,把Cloud Foundry Standalone Application的勾去掉。
接下去,就可以在eclipse中配置的tomcat上运行项目了。
springboot要支持servlet2.5,才可以在tomcat6中运行,让springboot支持servlet2.5需用到spring-boot-legacy,该插件目前只支持到springboot2.0.3版本。
测试环境:tomcat6 + jdk 1.8 +Springboot 1.5.9.RELEASE
作者:Jarvis_Huang
链接:https://www.jianshu.com/p/9b52c2ca5657



