[pig框架实战] nacos报错问题排查 《Failed to bind properties under ‘server.tomcat.basedir‘ to java.io.File:》

🛫 问题

描述

之前为了快速启动多个微服务,写了个批处理,参考文章《[pig框架实战] 手撕视频管理发布平台[03] - pig项目部署-服务器(myvideos) https://blog.csdn.net/kinghzking/article/details/122032497》,里面启动nacos的脚本是这样写的


set PATH_CODE=J:\_ALL\CODE\gitee\constellations\pig\
cd /d %PATH_CODE%\pig-register\target\classes
git pull
start "Nacos-%date%-%time%" cmd /k   java -Xms256m -Xmx512m  -Dfile.encoding=utf-8 -jar ..\pig-register.jar
ping localhost -n 2

当时写的是切换到pig-register\target\classes目录,然后执行java -jar ..\pig-register.jar。其实当时一开始写的是切换到pig-register\target目录,然后执行java -jar .\pig-register.jar,但是会报下面的错误。
在这里插入图片描述

这个问题找了很久,一直都没有找到答案,也是猜测和尝试了很久(一直以为是找不到配置文件bootstrap.yml),最后切换到了目录jar包所在目录的classes文件夹,然后再执行jar包,鬼使神差的运行正常了。两个目录内容如下:
在这里插入图片描述

ps: 一年多的时间,不同电脑上搭了四五个项目,这个问题在有的电脑上并不会出现(直接执行java -jar .\pig-register.jar也不会报错)。让我心中的❓越来越大,今天,一定消灭它!!!

1️⃣ jar包分析(失败)

之前说,可能是找不到bootstrap.yml导致报错,但是jar包中的确是有这个配置文件的,目录为BOOT-INF\classes\
在这里插入图片描述

比对正常和异常的jar包

将两个jar包中的bootstrap.yml放到BCompare中比较,发现两个文件一模一样,所以不是jar包的问题(以为电脑环境不一样导致打出来的jar包不一样)。
在这里插入图片描述

ps: 虽然没有解决问题,但是意外发现特殊配置basedir
欲知后事如何,请看下文讲解

2️⃣ basedir

错误信息中,有关键字server.tomcat.basedir,网上讲解的很少,但是上文中发现:配置文件中有该项的配置,值为logs
会不会是因为缺少这个文件夹导致的呢,新建一个试试。
在这里插入图片描述

再次运行java -jar .\pig-register.jar,不再报错了,撒花!!!

🛬 结论

pig-register.jar所在目录中新建一个logs文件夹,即可解决问题。
之前之所以切换到classes目录能正常运行,是因为该目录中包含了logs文件夹,巧合!!!
在这里插入图片描述

📖 参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜猫逐梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值