一、场景:
springboot项目,使用maven打包jar包上传云服务器,测试接口。
二、过一下流程:
1.买一个云服务器;
2.服务器上环境搭建,jdk和mysql安装,保证和MacBook电脑上的jdk和mysql版本一致;
3.数据库上传到云服务器;
4.运行jar包;
三、问题来了:
写接口的我会,但是当我想用接口的时候,却迟钝了,怎么部署啊,开始翻阅资料,查看视频,到底部署流程是怎么样子的啊,网上查的都没有完整的,都是讲一part是一part,那我就很头大,开始动手了。
四、解决问题:
第一步,买云服务器,搭建环境jdk,mysql,完成;
第二步,通过maven把jar打出来,问题来了,正式环境的配置怎么整,切换正式环境配置文件,数据库的账号和密码保证和云服务器上的一致,记得自己端口号写的是多少,通过maven下运行clear和install会在项目target文件夹下生成xxx.jar的包(maven打出来的包又叫超级jar包,因为里面包含了tomcat(web服务器)模块,你可以不用在云服务器上安装tomcat或者nigx),完成;
第三步,上传jar包,一开始我去,直接就远程登录云服务器,把jar包放上去,问题来了,我到底要怎么放上去,一个欧阳朋友跟我说了一下,有工具可以用的,马上找工具FinalShell,通过工具上传成功,成功快了,直接跑一下命令 java -jar xxx.jar,结果运行报错,问题又来了,到底怎么了,看了报错显示什么数据库的一堆问题,我去数据库怎么了,jar包是不是没带数据库的数据,有了这个猜想,我开始网上搜索把数据库的数据上传的云服务器上,这一查还不少博客提到,那行我明白了,猜想是对的,jar没带数据库数据。
第四步,上传数据库到云服务器,完成;
数据库上传到云服务器的博客地址:
https://blog.csdn.net/hongye_student/article/details/103054197?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161615417716780255296513%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=161615417716780255296513&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-1-103054197.pc_search_result_before_js&utm_term=
第五步,运行jar包,java -jar xxx.jar,完成;
第六步,开始测试,用请求工具postman,请求接口数据,ip:端口号/xx/xx,请求返回404,问题又来了,经过排查原来是java -jar xxx.jar命令只在终端不被关闭下,你的http请求才有效,否则会返回404,找不到主机报错提示,换命令nohup java -jar xxx.jar &,该命令默认会在当前文件夹下生成日志nohup.out,终端不敢关了,我关掉窗口断开链接不就可以了,如下操作
感言:
当时的我在第六步,一直找不到问题在哪里,很烦,后面想了想,有时候你已经成功了,却不知道,甚至错过了,我决定不排查问题了,放自己一天假,后面心态调整好了,问题就解决了,原来是我用了java -jar xxx.jar的命令却把终端给关了,太着急有时候是吃不到热豆腐的,所以说解决问题,心态很重要,希望可以帮到自学后端的新手小白。