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

找不到基名称的捆绑包

羊舌新荣
2023-03-14

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

我的代码是这样的

public static final Locale defaultLocale = new Locale("ru");

    public LocaleConfig() {
    }

    @Bean
    public LocaleResolver localeResolver() {
        return new FixedLocaleResolver(defaultLocale);
    }
    @Bean
    @Primary
    public MessageSource messageSource() {
        ResourceBundleMessageSource rs = new ResourceBundleMessageSource();
        rs.setBasenames("classpath:i18n/messages");
        rs.setBasenames("classpath:/org/springframework/security/messages");
        rs.setDefaultEncoding("UTF-8");
        rs.setUseCodeAsDefaultMessage(true);
        return rs;
    }

    @Bean
    @Primary
    public LocaleChangeInterceptor localeChangeInterceptor() {
        LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor();
        localeChangeInterceptor.setParamName("lang");
        return localeChangeInterceptor;
    }

共有1个答案

祝宾白
2023-03-14

基名相对于类路径的根,您不必编写它,请参见1.15.1。使用MessageSource实现国际化:

<beans>
    <bean id="messageSource"
            class="org.springframework.context.support.ResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>format</value>
                <value>exceptions</value>
                <value>windows</value>
            </list>
        </property>
    </bean>
</beans>

该示例假设您在类路径中定义了三个资源包,分别称为格式异常windows。任何解析消息的请求都以JDK标准的方式处理,即通过ResourceBundle对象解析消息。

修改后的代码:

@Bean
@Primary
public MessageSource messageSource() {
    ResourceBundleMessageSource rs = new ResourceBundleMessageSource();
    rs.setBasenames("org/springframework/security/messages");
    rs.setDefaultEncoding("UTF-8");
    rs.setUseCodeAsDefaultMessage(true);
    return rs;
}
 类似资料:
  • 任何人,请帮助我,由于以下错误,我无法运行Android应用程序。 java实用程序。MissingResourceException:找不到基本名称消息的绑定。AndroidJpsBundle、,在org.jetbrains.jps.android.AndroidJpsBundle.message(AndroidJpsBund psBundle.java:32)位于org.jetbrains.j

  • 问题内容: 命令: 异常(来自日志文件) 但是以下jar可用。 关于上述错误有什么建议吗? 问题答案: 您需要安装几个捆绑软件才能使用控制台,如果仅使用Equinox启动,则您将不会获得这些捆绑软件。 使此工作最快的方法是创建一个具有以下内容的文件: 注意, 您将不得不根据实际拥有的版本检查这些捆绑软件的版本号。我使用SDK-4.2M6进行了尝试,其中某些可能已在RC3中更改。

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

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

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

  • 我正在开发一个应用程序,它利用Hibernate框架将OSGi转换为更具体的Equinox Server。因此,我生成了库包和客户端插件,我在其中利用前面提到的库包对业务逻辑和数据库之间的通信进行编程。在我的项目中,我有以下包结构: 在管理器包中,我有那些负责将客户端与数据库和映射进行通信的类,其中一个包含配置文件和Hibernate映射文件。然而,当我部署捆绑包时,引用运行良好,但是我得到一个异