jar tf app.jar | grep messages.properties java -Djava.util.logging.config.file=logging.properties -jar app.jar
集成风控 SDK 后,订单模块的 27 条中文提示变成英文,重新打包顺序一变又恢复,来回出现三次。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。
原因不复杂,两个 jar 的根路径下都有同名 messages.properties,类加载器只取最先找到的那一份。Spring Boot 的 fat jar 里顺序由打包插件决定,不受依赖声明控制。业务文案和 SDK 文案共用了同一个 basename。
「语言包覆盖」确认了原因之后,改动尽量只碰那一处,顺手改的东西后面最容易出问题。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。
接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。
处理上按这个顺序:业务语言包改成独立 basename 加模块前缀;把 ResourceBundle 的 basename 显式配置 不靠默认查找;构建后解包检查同名文件是否还在;启动时打印实际加载的 bundle 路径。
改完只确认一件事:启动日志里只加载业务自己的 bundle,27 条中文提示恢复且重启三次不变。
