Skip to content

调试 ​

本文汇总 日常排障 常用手段:看日志、改本地配置、用 HTTP 客户端打接口、微信回调路径说明。端口与启动方式见 本地 / Docker 部署 与 快速入门。

端口速查 ​

服务典型端口说明
ecshopx-java HTTP API18080server.port;API 基址 http://localhost:18080/api/
XXL-JOB Admin(Docker Compose)8080http://localhost:8080/xxl-job-admin(admin / 123456)
XXL-JOB Admin(本地独立部署)9080application-local.properties 中 xxl.job.admin.addresses=http://127.0.0.1:9080/xxl-job-admin
XXL-JOB Executor19999随应用注册,供 Admin 回调

1. 查看应用日志 ​

Docker Compose ​

bash
cd ecshopx-java
docker compose logs -f ecshopx-java

仅看最近 200 行:

bash
docker compose logs --tail=200 ecshopx-java

本地 logs/ 目录 ​

仓库根目录约定运行时日志目录:

text
ecshopx-java/logs/
├── ecshopx.out          # 后台 nohup 启动时的标准输出
└── xxl-job/             # XXL-JOB 执行器日志(xxl.job.executor.logpath)
  • Compose / spring-boot:run 前台运行时,主日志多在 终端;需要落盘时可重定向或使用 nohup 后台启动。
  • 定时任务失败时,除应用日志外应检查 logs/xxl-job/ 与 XXL-JOB Admin 控制台(8080 或 9080)。

MyBatis SQL 调试 ​

application-local.properties 默认开启:

properties
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

本地排障时可在控制台看到 SQL;提交前勿将含敏感数据的完整 SQL 日志贴到公开渠道。生产环境应关闭或改为采样。

2. 本地配置:application-local.properties ​

路径:

text
ecshopx-bootstrap/src/main/resources/application-local.properties

常用本地启动:

bash
cd ecshopx-java
./mvnw -pl ecshopx-bootstrap -am spring-boot:run \
  -Dspring-boot.run.profiles=local

排障时经常改动的项:

配置键用途
spring.datasource.*MySQL 连接
spring.data.redis.* / ecshopx.redis.*Redis 多逻辑库
JWT_SECRET / ecshopx.h5.jwt.*运营端 / H5 JWT
xxl.job.admin.addresses本地 Admin 地址(9080)vs Compose(容器内 8080)
ecshopx.storage.*对象存储驱动与密钥(勿提交真实密钥)
ecshopx.wechat.open.*微信开放平台组件配置

完整键说明见 配置与环境变量。

注意:spring.flyway.enabled=false,数据库结构变更用 bin/make-migration,避免启动误改库(见 数据库快速入门)。

3. 远程调试(可选) ​

JVM 监听 5005,IDE 附加 Remote JVM Debug:

bash
./mvnw -pl ecshopx-bootstrap spring-boot:run \
  -Dspring-boot.run.profiles=local \
  -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005"

4. 用 curl 验证 /api/ ​

应用监听 18080 后,先确认进程与端口:

bash
curl -sS -o /dev/null -w "%{http_code}\n" http://localhost:18080/api/

业务接口需带正确路径与鉴权。示例(路径来自真实 Controller):

bash
# C 端商品列表(一般无需运营 JWT)
curl -sS "http://localhost:18080/api/v1/h5app/wxapp/goods/items?page=1&page_size=10"

# 管理端商品列表(需 @AdminAuth Bearer token)
curl -sS -H "Authorization: Bearer <operator_jwt>" \
  "http://localhost:18080/api/v1/goods/items?page=1&page_size=10"

演示账号:admin / Shopex123(业务库演示数据)。获取 JWT 的具体登录接口以运营端认证流程为准。

更多端到端示例见 快速入门。

5. 微信回调:/wechatAuth/ ​

对外路径前缀(见 架构说明):

路径用途
http://localhost:18080/wechatAuth/微信相关回调根路径
/wechatAuth/callback微信开放平台消息与授权事件(WechatOpenPlatformMessageCallbackController)

本地调试微信回调通常需要 公网可达 URL(内网穿透或测试环境域名)。配置项示例:

properties
ecshopx.payment.wechat.notify-url=http://127.0.0.1/wechatAuth/wxpay/notify

生产须在网关 / Nginx 将 /wechatAuth/ 反代到应用 18080,并与微信后台配置的授权回调域一致。

6. Sentry(可选) ​

当前工程 未内置 Sentry SDK(无 sentry 依赖)。若需错误聚合,可按运维规范自行集成 Sentry Java SDK 或沿用日志采集方案;见 架构说明。

7. 常见问题速查 ​

现象建议
连接 MySQL / Redis 失败核对 application-local.properties 与中间件是否启动(Compose 或本机)
401 / 403检查 JWT、@AdminAuth / @FrontAuth 与请求头
XXL-JOB 不执行Admin 地址端口(8080 vs 9080)、Executor 19999、Admin 控制台任务是否注册
接口 404rg @RequestMapping 确认真实路径;注意 admin / front 前缀不同

相关章节 ​