“取一杯天上的水,照着明月人世间晃呀晃” 手机电话来了,一看原来是老板的电话,找我准没好事。
"小飞,刚xxx项目的客户打电话过来了,说手机号不能注册,赶紧看看什么问题!" 老板说。
"好的,老板。" 我温柔的回复了老板。 挂了电话后,我赶紧拿出了我的电脑。
"不应该,注册接口怎么会有问题呢?手机号+短信验证码+密码就完成注册了,很easy呀。" 边打开电脑我边在想。
电脑开机成功,打开 MobaXterm
连上服务器 ,轻车熟路敲下查看日志的命令
less log.out
ps: 简单介绍一下 less 常用命令
G 移动到最后一行
g 移动到第一行
?excep 向上搜索 包含 "excep" 的内容,回车(enter),n 向上翻页,N 向下翻页
/excep 向下搜索 包含 "excep" 的内容,回车(enter),n 向下翻页,N 向上翻页
输入G,翻到最后一行,查找异常
?exception
回车,n 向上查找,找到了,讨厌的 NullPointerException
java.lang.NullPointerException: null
// 这里可以看到错误异常具体是在哪个类,哪行代码抛出的异常
at com.hn.project.contorller.UserController.register(UserController.java:306)
打开 IDEA
开发工具,双击 shift
, 搜索找到 UserController
这个类。
Ctrl+G
,输入 306
,点击 ok ,跳转到第 306 行代码。
"我擦,原来是这个地方报了空指针异常!" 我大声地说。
注册接口一共在两个地方使用了,就是下面两个:
- h5 页面邀请注册,需要携带邀请码才能注册。
- app 注册,不需要携带邀请码
因为邀请码不是必填的,所以我这边就不需要做判空的条件。但是如果有邀请码,是需要绑定邀请关系的。因为没有传邀请码,所以查询不到邀请的用户信息,就报了空指针异常。
"ok,打包部署服务器。" 我说。
打包上传,去泡杯奶茶喝,jar包上传的应该就差不多了。
奶茶泡好了,回来一看,"我擦,怎么才上传这么点?" 看到上传速度才 10k/s ,猛地一拍大腿,流量昨天开始就被限速了。
租的地方没有无线网,天天在家都是用流量,这不快到月底了吗?超过10G,就限速了,赶紧向我老婆求救,她给我来了一句,她的早就被限速了。这可咋办呢?看着慢的跟蜗牛似的网速,于是有了下面的神一般操作。
线上打包
- maven 安装到服务器上,如果项目上线了,最好找一台测试服务器,不要使用上线的项目的服务器,因为打包会占用服务器资源。
- 源代码上传到服务器
- 执行
mvn package
进行打包 - 服务关闭,启动jar包
二次优化
大家想一下,我们的编译后的代码实际上没有多大,占用空间的主要是依赖的 jar 包,我们一开始就把依赖的 jar 包上传到 服务器一个指定的目录,我们启动服务指定这个lib目录不就可以了吗?我们来试试看
- 创建一个 lib 文件夹
- 用压缩软件打开 jar 包,将 BOOT-INF/lib 目录下的所有 jar 包复制到刚创建好的 lib 目录
-
删除 BOOT-INF/lib 目录下所有 jar 包
java -Djava.ext.dirs=./lib -jar test.jar
注意: 如果有新的依赖 jar 包,需要单独将新的 jar 包拖到 lib 目录。
感觉这样有点麻烦,每次打完包还要手动删除依赖的 jar 包,那能不能打包的时候就排除 jar 呢?
-
gradle
配置// 在 build.gradle 加入以下代码 bootJar { archiveClassifier = 'boot' excludes = ["*.jar"] }
作者:时刻在奔跑
链接:https://juejin.cn/post/6955786061876297764
来源:掘金
网友评论