SpringMVC微服务架构实战之基于事务的分布式解决方案
部署项目到linux上
在本地将项目打成war包
我的项目是SpringBoot项目
这里说下遇到一个坑:
在SpringBoot的启动类中需要继承SpringBootServletInitializer ,并重写configure方法, 这样在tomcat的日志中才会有项目加载日志出来,项目才能启动成功, 不然会出现访问页面可以, 访问方法报404错误,因为项目没有启动成功
package mobi.weiapp.cms;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
/**
* war打包时指定启动类
*/
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
return application.sources(CmsApplication.class);
}
}
,使用maven打包, 需要在pom文件中修改打包方式, 使用war包
然后,先clear一下, 在使用package打包
在项目中会有个target文件, 这里就有打包好的war包
接下来部署到tomcat中
将war包上传到tomcat的webapps下, 这里说一个技巧, 可以在没上传前将war包 名改成ROOT.war, 将tomcat中的ROOT文件夹删除( rm -rf ROOT ), 这样的好处是: tomcat自动解压war包, 会生成一个ROOT文件夹, 里面就是我们的项目, 启动tomcat后, 在浏览器中访问项目就不用在端口号后面添加war包名了, 还有个好处就是后台接口也不用在请求前面加上war包名, 不会出现404错误
部署后的结果就是
切换到tomcat目录下的logs目录下, 使用 tail -f catalina.out 命令可以打印日志
然后重新开一个窗口, 切换到tomcat的bin目录下, 启动tomcat, 在浏览器中输入 服务器ip:8080(默认)/xx.html就可以访问项目了
假设我的服务器ip是: 172.168.16.16, 我的项目首页是login.html 那么我的请求地址就是 172.168.16.16:8080/login.html
至此, 一个SpringBoot项目部署成功