三分钟把spring boot打成war包部署到tomcat中 |
您所在的位置:网站首页 › spring打包war › 三分钟把spring boot打成war包部署到tomcat中 |
虽然一般微服务都是把spring boot项目打成jar直接启动,但是war包作为经典的项目启动方式,是有必要掌握的。 完整项目代码已上传github:github.com/neatlife/my… 写作花费了作者大量时间,求赞,求关注 _(:з」∠)_ 准备案例项目可以直接拿现成的spring boot项目进行修改,也可以在https://start.spring.io/创建一个新的案例项目,比如: ![]() 如果是在start.spring.io上创建的新项目,需要把web组件加到项目里,这个编写测试接口会用到web组件里的控制器。 然后在idea中打开这个项目,编写两个用来测试的api @RestController @RequestMapping("test") public class MyController { @RequestMapping("test1") public String test1() { return "test1"; } @RequestMapping("test2") public String test2() { return "test2"; } } 将项目打包成war包修改pom.xml指定打包方式为war包: war 修改pom.xml修改spring boot内置的tomcat依赖,指定scope为provided org.springframework.boot spring-boot-starter-tomcat provided修改成果如下: ![]() 创建一个初始化文件初始化项目比如:MySpringBootServletInitializer.java 核心代码如下 public class MySpringBootServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(MywarApplication.class); } }执行命令mvn clean install -Dmaven.test.skip=true将项目打成war包,执行后到target目录查看效果 ![]() 可以使用docker一键启动tomcat,把项目war所在的target目录挂载到tomcat的webapps目录 docker run --name=tomcat -itd --rm -p 8888:8080 \ -v /Users/suxiaolin/Dropbox/Projects/mywar/target:/usr/local/tomcat/webapps tomcat:8-jre8可以使用docker logs -f tomcat查看tomcat启动日志 ![]() 打开浏览器访问查看效果 ![]() 注意这个url前缀是war包完整的包名,完整url如下 http://127.0.0.1:8888/mywar-0.0.1-SNAPSHOT/test/test1 http://127.0.0.1:8888/mywar-0.0.1-SNAPSHOT/test/test2 一些注意的点可以修改最终的war包的名称,比如去掉文件名里的版本号:mywar.war,在pom.xml使用finalName指令可以实现 ![]() 重新打包查看效果 ![]() 这样访问url就方便了 ![]() tomcat启动时可能报这个错, 参考Unsupported major.minor version 52.0解决办法:Unsupported major.minor version 52.0 (unable to load class org.springframework.web.SpringServletContainerInitializer) 这是因为项目打包的java版本和tomcat的java版本不一致导致的,目前一般使用java8,tomcat的docker镜像选择tomcat:8-jre8就可以了 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |