bug1
服务器启动成功,但是无法访问网页。


解决:
linux防火墙开放8090端口,之后就可以访问了。
firewall-cmd --add-port=8090/tcp --permanent && firewall-cmd --reload && firewall-cmd --list-ports

bug2
redis容器环境删掉,重新配置。 bug记录 密码记错了 是123456,不是01star。密码记错了。
自己配置的密码是:123456,结果配置文件里面写的密码还是:01star。这样连上redis数据库才奇怪呢。
spring:
datasource:
# url: jdbc:mysql://192.168.220.128:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
url: jdbc:mysql://192.168.154.129:3306/test?useUnicode=true&useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
password: 123456
druid:
max-active: 5
redis:
# host: 192.168.220.128
#修改为自己主机的IP地址
host: 192.168.154.129
port: 6379
password: 01star
# password: 123456
data:
mongodb:
# uri: mongodb://awei:123456@192.168.220.128:27017/firstDb
#修改为自己主机的IP地址和端口号
uri: mongodb://awei:123456@192.168.154.129:27017/firstDb
bug3

下面我跟着阿伟学长的代码手敲就报错,然后我复制粘贴阿伟学长的代码就没报错了。我不理解。一样的代码运行效果不一样。
解决:
一、核心问题拆解(注释报错 + 注册无提示)
问题 1:JSON 配置里的注释导致解析报错
JSON 格式不支持 // 单行注释 (只有 JavaScript/JSOnC 等扩展格式支持),你在 args 数组里加的 ////nacos服务器的地址和端口 这类注释,会让 VS 解析调试配置文件时直接失败,导致程序启动参数传递异常。
问题 2:没有 arch-demo register success 提示的核心原因
即使注释问题解决,你的代码里根本没有打印「注册成功」的日志,且参数解析 / 传递环节有坑,导致 Nacos 注册逻辑要么没执行,要么执行了但你看不到结果。
二、分步解决(先修注释,再修注册提示)
步骤 1:修复 JSON 调试配置(去掉注释,规范参数格式)
JSON 配置里删除所有 // 注释,且参数里不能有空格 (比如 na = 192.168.154.129:8848 里的空格会导致解析失败),修改后完整配置:
json
{
"type": "cppgdb",
"name": "arch-demo (arch-demo\\arch-demo)",
"project": "CMakeLists.txt",
"projectTarget": "arch-demo (arch-demo\\arch-demo)",
"comment": "了解如何配置远程调试。有关详细信息,请参阅 http://aka.ms/vslinuxdebug",
"debuggerConfiguration": "gdb",
"MIMode": "gdb",
"args": [
"na=192.168.154.129:8848",
"ns=eams-cpp-dev",
"sn=arch-demo",
"ip=192.168.154.129",
"sp=8090" // 补充服务器端口,避免注册时端口为空
]
}
✅ 关键修正:
- 删掉所有
//注释(JSON 不识别); - 补充
sp=8090(服务器端口,注册服务需要端口,否则atoi转换会出错); - 确保参数格式是
前缀=值,等号两边无空格 (你的注释里写的na = xxx有空格,解析时会触发format error并退出程序)。
注意1
linux操作系统下面是严格区分字母大小写的哦。
注意2
运行.sh结尾的shell脚本文件的时候需要注意的地方。修改格式命令:set ff=unix
vs上面的代码运行跑在linux服务器上的手需要修改windows下的dos改为linux下的unix哦。
