当前位置: 首页 > 知识库问答 >
问题:

找不到MessageSource的ResourceBundle

阎裕
2023-03-14

我是spring的新手,现在我正在尝试使用应用程序上下文执行I18N过程。我正在从事一个maven模块化项目。我的项目包括以下子模块:

模型myApp服务myApp webApp myApp

services-MyApp
   src/main/java     
   src/main/resources

在services myApp resources文件夹中,我用消息源声明了应用程序上下文

<!-- Need to I18N  -->
<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="WEB-INF/lang/myFile"/>
</bean>

在webApp中,我有I18N所需的文件

webApp MyApp src/main/webApp/WEB-INF/lang/myFile_it_it。属性

现在当我试图得到信息:

        String message = applicationContext.getMessage("myCode", null,null, Locale.ITALY);

我反而得到了

WARN ResourceBundleMessageSource-找不到MessageSource的ResourceBundle[/WEB-INF/lang/myFile]:找不到基名称/WEB-INF/lang/myFile的捆绑包,请将其设置为区域设置\u

消息为空。而如果我在webApp类路径(/src/main/resources)中移动文件,并将messageSource的值更改为myFile,一切都会正常工作。

我怎样才能修好它?

共有2个答案

万嘉石
2023-03-14

目前,我正在学习Spring Boot和本地化的配置花了我一段时间让它工作。

尤其是为属性文件找到正确的位置是一个问题。将它们放在src/main/resources/中很好,因为很容易将引用设置到该位置。(见要点)

同样重要的是要知道,ResourceBundleMessageSource中的basename自动相对于资源路径。

如果您想使用基于配置的注释,而不是XML。请查看我的要点,了解配置示例。

https://gist.github.com/AWolf81/d3ca839e711810345e42

闻人英韶
2023-03-14

尝试使用可重新加载的ResourceBundleMessageSource,而不是ResourceBundleMessageSource。它将在WEB-INF下查找文件。

 类似资料:
  • 我有两个问题: 问题1:我的消息文件位于web-inf/i18n目录下。它只包含两个文件:messages_en.properties和messages_hr.properties。 如果我尝试运行上面的代码,我会得到警告:“ResourceBundle[messages]not found for MessageSource:不能find bundle for base name message

  • 这里有一个非常基本的spring boot项目,只有6个类。 https://github.com/paranoiabla/spring-boot-mockmvc 设置非常基本,只有一个测试用例失败了。我得到的例外是 我相信这是因为line,方法通过调用仅接受路径的构造函数创建了。作为内部的结果,使用初始化,它将在类路径中查找资源。这样,如果我有一个并且我的属性文件在中,它将永远找不到它们,因为被

  • 我正在使用Spring boot应用程序向Kafka主题发送JSON数据数组,但得到以下错误: 配置文件和服务文件代码: 发布JSON: [{“学生ID”:“Q45678123”,“名字”:“ABC”,“名字”:“XYZ”,“年龄”:“12”,“地址”:{“公寓”:“公寓123”,“街道”:“街道信息”,“州”:“州”,“城市”:“城市”,“邮编”:“12345”}},{“学生ID”:“Q4567

  • 我是一名学习使用jsp和Servlet构建Web应用程序的学生。一个月以来,我的Web应用程序项目一直运行良好,但今天它的行为突然变得奇怪了。当我提交jsp页面时,它无法找到我的servlet。我已经使用servlet注释来映射请求。 以下是我的JSP:- 以下是我的servlet:- 以下是我的控制台日志:-

  • 问题内容: 我正在运行Windows 8,但无法使javac正常工作。 我已将环境变量中的PATH设置为 我尝试过是否使用’;’ 但无济于事。 我最近在桌面上添加了这个问题;工作,但不是这种情况。 我确保javac确实也存在于bin中。 关于修复的任何建议将不胜感激。 编辑echo%PATH%给出: 确切的错误是:无法将“ javac”识别为内部或外部命令,可操作程序或批处理文件。 问题答案: 至

  • 问题内容: 我正在为我的项目使用jersey,并尝试从字符串中解析URI。 代码很简单,但是下面出现错误 看来程序找不到委托。我已经导入了,并且应该在我的构建路径中包含委托。但我仍然会收到此错误。 有人知道如何解决吗?谢谢! 问题答案: 如果您使用的是Maven,请使用以下依赖项: 对于Gradle,以下将起作用: