JavaEE配置messages.properties提示找不到资源包异常如何解决
异常根因
- 程序配置的资源包基础路径为
com.linkedin.hsportscatalog.resources.messages,运行时会在ClassPath下扫描对应层级目录中以messages为前缀的properties文件,文件存放路径不匹配是该异常的核心触发原因 - 若你当前使用的locale为en_GB,项目中既没有对应
messages_en_GB.properties适配文件,也没有messages.properties作为默认兜底文件,也会抛出该异常 - 项目资源根目录未被正确标记,构建时不会将资源文件打包进最终的ClassPath目录,也会导致运行时找不到配置文件
修复步骤
- 调整文件存放路径:如果是标准Maven项目,在
src/main/resources目录下创建多级目录com/linkedin/hsportscatalog/resources/,将你的messages.properties放到该路径下;如果需要适配en_GB locale,可在同路径下新增messages_en_GB.properties文件 - 标记资源根目录:以IDEA为例,右键点击
src/main/resources目录,选择「Mark Directory as」→ 「Resources Root」,保证构建时目录下的配置文件会被拷贝到ClassPath根目录 - 核对配置项:确认faces-config.xml中资源包配置和路径一致,参考配置如下:
<application> <resource-bundle> <base-name>com.linkedin.hsportscatalog.resources.messages</base-name> <var>msg</var> </resource-bundle> </application>
- 重新构建生效:执行clean命令清理旧的构建产物后重新打包项目,启动服务验证问题是否解决
内容的提问来源于stack exchange,提问作者Amr Rady
相关产品推荐
相关产品推荐

