上一篇文章中讲到了怎么在linux中部署jar项目,但是在服务器上部署jar并不是一种合规的做法,正常情况下,会在服务器上部署war包。
一.安装tomcat
首先我们需要从官网中下载tomcat,
然后对tomcat压缩包进行解压
解压完后,我们可以选择性的对tomcat解压文件进行重命名
二.上传war包并进行部署
首先将我们的war包上传到linux的tomcat的webapps目录下
上传成功后我们就可以启动我们的tomcat服务器啦。
然后我们可以通过查看tomcat的catalina日志,判断tomcat是否启动成功
可以看到我们的tomcat日志已经启动成功了,接下来对我们的war包是否部署成功进行验证。
此时可以看到我们的war包已经成功部署了。接下来测试一下我们的延迟队列功能是否正常
可以看到程序返回了true,同事redis中也存在了新添加的job。
三.坑位规避
这里有一个坑需要注意一下,由于当前项目采用的是spring-boot,在部署项目的时候spring-boot里面会内置一个LoggerFactory,这个是spring-boot内置的日志框架,我们本地idea启动的时候不会出现问题,但是在linux上部署war包的时候spring-boot会通过内置的LogbackLoggingSystem.getLoggerContext()获取到LogBack,由于spring-boot加载日志是通过类加载器和类名获取的,但是我们的项目中spring-boot获取Logback导致报错,目前提供的解决方式是将spring-boot启动依赖中的日志依赖剔除掉
各位大佬如果有更好的解决方式,欢迎前来补充。
补充: 类加载器和类名获取类与通过反射获取类有一定的区别,类加载器是将.class文件直接加载进内存中,而反射是将.class文件加载进内存后,再把对象内容封装成对象,所以反射在使用上会更加灵活