简体   繁体   English

MissingResourceException - 找不到基本名称的包

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

I know that there are a lot of questions and answers exactly about this error on stackoverflow and other forums. 我知道在stackoverflow和其他论坛上有很多关于这个错误的问题和答案。 But I still can not find the solution... 但我还是找不到解决方案......

For speed reasons I have one utility class which loads all static data maps (for example months) depending on locale provided. 出于速度原因,我有一个实用程序类,它根据提供的语言环境加载所有静态数据映射(例如几个月)。

So this utility class looks something like this: 所以这个实用程序类看起来像这样:

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;
}

Files globalMessages.properties (globalMessages_en_US.properties,...) are directly in source package resources . 文件globalMessages.properties(globalMessages_en_US.properties,...)直接在源包资源中 When deployed on Tomcat there are in folder WEB-INF/classes . 在Tomcat上部署时,有WEB-INF / classes文件夹。

Now the problem. 现在问题。 It all works when working in this application . 这一切都适用于此应用程序 But I have another application which connects throught REST API (JAX-RS) to this one. 但我有另一个应用程序通过REST API(JAX-RS)连接到这个。 When making a request App/rest/months.xml I get the following error: 在发出请求App / rest / months.xml时,我收到以下错误:

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

I am really lost. 我真的迷路了。 And desperate... 绝望......

Ok... Found the error. 好的...发现错误。 After one f* day... The problem is in case sensitive letters. 一天f *之后......问题出在敏感信件上。 Even though, when setting the locale from rest with "en_US" somehow ResourceBundle (when going through REST) is looking for "en_us". 尽管如此,当使用“en_US”以某种方式设置来自rest的语言环境时,ResourceBundle(当通过REST时)正在寻找“en_us”。

EDIT : Ok, found also the error why it was all in small letters. 编辑 :好的,也发现了为什么它都是小写字母的错误。 Problem was, because I was creating locale with: 问题是,因为我正在创建语言环境:

Locale locale = new Locale("en_US");

instead of: 代替:

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

For anybody having trouble with a Glassfish server in this case, there is the possibility to set the Locale within the Admin Overview 对于在这种情况下遇到Glassfish服务器问题的任何人,可以在管理员概述中设置区域设置

在此输入图像描述

Simple overwrite the default locale as shown in the picture 简单地覆盖默认语言环境,如图所示

Somebody might find this useful, I had trouble for multiple hours and dont want anyone to have this kind of problem aswell 有人可能会觉得这很有用,我有多个小时的麻烦,也不希望任何人有这种问题

暂无
暂无

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

相关问题 .MissingResourceException:找不到基本名称的包 - .MissingResourceException: Can't find bundle for base name MissingResourceException:找不到基本名称的捆绑 - MissingResourceException: Can't find bundle for base name MissingResourceException:找不到基本名称的捆绑 - MissingResourceException: Can't find bundle for base name java.util.MissingResourceException:找不到基本名称的包 - java.util.MissingResourceException: Can't find bundle for base name MissingResourceException:运行 JAR 时找不到基本名称的捆绑包 - MissingResourceException: Can't find bundle for base name when running JAR java.util.MissingResourceException:找不到基本名称的包 - java.util.MissingResourceException: Can't find bundle for base name java.util.MissingResourceException:找不到基本名称包的包 - java.util.MissingResourceException: Can't find bundle for base name Bundle java.util.MissingResourceException:找不到基本名称为ResBundle的包,语言环境为en_GB - java.util.MissingResourceException: Can't find bundle for base name ResBundle, locale en_GB java.util.MissingResourceException:找不到基本名称消息的bundle,locale en_US - java.util.MissingResourceException: Can't find bundle for base name messages, locale en_US MissingResourceException:找不到基本名称资源的捆绑包。controls.controls_res,语言环境 - MissingResourceException: Can't find bundle for base name resources.controls.controls_res, locale en
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM