gpt4 book ai didi

java - MissingResourceException - 找不到基本名称的包

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:37:54 25 4
gpt4 key购买 nike

我知道在 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,...) 直接在源包 resources 中。当部署在 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

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

最佳答案

好的...发现错误。在他妈的一天之后……问题是区分大小写的字母。即使如此,当使用“en_US”从 rest 设置语言环境时,ResourceBundle(通过 REST 时)会以某种方式寻找“en_us”。

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

Locale locale = new Locale("en_US");

代替:

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

关于java - MissingResourceException - 找不到基本名称的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3318465/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com