繁体   English   中英

MissingResourceException - 找不到基本名称的包

[英]MissingResourceException - Can't find bundle for base name

我知道在stackoverflow和其他论坛上有很多关于这个错误的问题和答案。 但我还是找不到解决方案......

出于速度原因,我有一个实用程序类,它根据提供的语言环境加载所有静态数据映射(例如几个月)。

所以这个实用程序类看起来像这样:

public static final String GLOBAL_MESSAGES = "globalMessages";

private static Map<Integer,Month> monthsMap;

private ResourceBundle getResourceBundle(Locale locale) {
    ResourceBundle rb = ResourceBundle.getBundle(GLOBAL_MESSAGES, locale);
    return rb;
}

private Map<Integer,Month> getMonths() {
    if(monthsMap == null) {
        setMonths();
    }
    return monthsMap;
}

private void setMonths() {
    try {
        monthsMap = getFactory().getDAO().getAllMonths();
    } catch (SQLException e) {
        logger.error(e);
    } catch (EmptyResultException e) {
        logger.error(e);
    }
}

public Map<Integer,Month> getMonths(Locale locale) {
    if(locale == null) {
        return monthsMap;
    } else {
        if(this.locale != locale) {
            this.locale = locale;
            setMonths();
        }
    }
    ResourceBundle rb = getResourceBundle(locale);
    Map<Integer,Month> map = new HashMap<Integer, Month>();
    for(Month akVO : getMonths().values()) {
        try {
            akVO.setName(rb.getString(akVO.getName()));
        } catch (MissingResourceException e) {
            //already done
        }
        map.put(akVO.getId(), akVO);
    }       
    return map;
}

文件globalMessages.properties(globalMessages_en_US.properties,...)直接在源包资源中 在Tomcat上部署时,有WEB-INF / classes文件夹。

现在问题。 这一切都适用于此应用程序 但我有另一个应用程序通过REST API(JAX-RS)连接到这个。 在发出请求App / rest / months.xml时,我收到以下错误:

java.util.MissingResourceException: Can't find bundle for base name globalMessages, locale en_us

我真的迷路了。 绝望......

好的...发现错误。 一天f *之后......问题出在敏感信件上。 尽管如此,当使用“en_US”以某种方式设置来自rest的语言环境时,ResourceBundle(当通过REST时)正在寻找“en_us”。

编辑 :好的,也发现了为什么它都是小写字母的错误。 问题是,因为我正在创建语言环境:

Locale locale = new Locale("en_US");

代替:

Locale locale = new Locale("en","US");

对于在这种情况下遇到Glassfish服务器问题的任何人,可以在管理员概述中设置区域设置

在此输入图像描述

简单地覆盖默认语言环境,如图所示

有人可能会觉得这很有用,我有多个小时的麻烦,也不希望任何人有这种问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM