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

找不到MessageSource的ResourceBundle[messages]:找不到基本名称消息的bundle

公孙棋
2023-03-14
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basenames">
        <list>
            <value>/WEB-INF/i18n/messages</value>
        </list>
    </property>
</bean>
public class ErpMessageSource extends ResourceBundleMessageSource {

    public Map<String, String> getMessages(String basename, Locale locale) {
        Set<String> keys = getKeys(basename, locale);
        Map<String, String> m = new HashMap<String, String>();

        for (String key : keys) {
            try {
                m.put(key, getMessage(key, null, locale));              
            } catch (Exception e) {
                System.err.println(key + " - " + e.getLocalizedMessage());
            }
        }

        return m;
    }

    private Set<String> getKeys(String basename, Locale locale) {
        ResourceBundle bundle = getResourceBundle(basename, locale);
        return bundle.keySet();
    }

}

我有两个问题:

问题1:我的消息文件位于web-inf/i18n目录下。它只包含两个文件:messages_en.properties和messages_hr.properties。

如果我尝试运行上面的代码,我会得到警告:“ResourceBundle[messages]not found for MessageSource:不能find bundle for base name messages,locale'some locale'”,后面跟着NullPointerException。

共有1个答案

盖博简
2023-03-14

您可能只需将资源文件夹添加到项目的类路径中。

试着做以下操作:

右键单击Package Explorer视图中的项目名称---->属性---->Java构建路径---->停留在Source选项卡(默认情况下打开)---->单击文件夹-->现在应该出现项目中所有文件夹的列表---->在包含消息属性文件的文件夹上打勾

 类似资料:
  • 我是spring的新手,现在我正在尝试使用应用程序上下文执行I18N过程。我正在从事一个maven模块化项目。我的项目包括以下子模块: 模型myApp服务myApp webApp myApp 在services myApp resources文件夹中,我用消息源声明了应用程序上下文 在webApp中,我有I18N所需的文件 webApp MyApp src/main/webApp/WEB-INF/

  • 问题内容: 我正在使用依赖于jfreechart(v 1.0.9)的库。 当我尝试运行.jar时,我得到: 我尝试创建LocalizationBundle.properties文件,但是没有做到。我已经检查了CLASSPATH,仍然无法执行。 有任何想法吗? 问题答案: 到目前为止,异常消息详细告知您需要在类路径中包含以下文件之一: 要么 要么 另请参见Sun自己的关于resourcebundle

  • 这是我的工作树 我已经搜索了这个问题,但我还没有弄清楚问题是什么。救命啊!

  • 我使用名为jnca的库来捕获从路由器发送的netflow udp数据包。 当它被导入到IntellijIDea中的一个新项目中时,它就可以工作了。 如果在maven项目中使用它,它就不起作用,并出现了这个异常。

  • 任何人,请帮助我,由于以下错误,我无法运行Android应用程序。 java实用程序。MissingResourceException:找不到基本名称消息的绑定。AndroidJpsBundle、,在org.jetbrains.jps.android.AndroidJpsBundle.message(AndroidJpsBund psBundle.java:32)位于org.jetbrains.j

  • 找不到MessageSource的ResourceBundle[classpath:/org/springframework/security/messages]源:找不到基本名称的bundle classpath:/org/springframework/security/messages,locale ru我找不到任何在Java中设置国际化的解决方案 我的代码是这样的