Je sais qu'il y a beaucoup de questions et réponses exactement au sujet de cette erreur sur stackoverflow et d'autres forum. Mais je n'arrive toujours pas à trouver la solution ...MissingResourceException - Ne peut pas trouver le paquet pour le nom de base
Pour des raisons de vitesse, j'ai une classe utilitaire qui charge toutes les cartes de données statiques (par exemple des mois) en fonction des paramètres régionaux fournis.
donc cette classe utilitaire ressemble à quelque chose comme ceci:
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;
}
Fichiers globalMessages.properties (globalMessages_en_US.properties, ...) sont directement dans le paquet source ressources. Lorsqu'il est déployé sur Tomcat, il existe dans le dossier WEB-INF/classes.
Maintenant le problème. Tout cela fonctionne lorsque vous travaillez dans cette application. Mais j'ai une autre application qui se connecte via l'API REST (JAX-RS) à celle-ci. Lorsque vous effectuez une demande App/repos/months.xml Je reçois l'erreur suivante:
java.util.MissingResourceException: Can't find bundle for base name globalMessages, locale en_us
Je suis vraiment perdu. Et désespéré ...
Haha, oh homme, ne pas simplement loooove programmation. – Pat
:) Je dois aimer votre commentaire :) – Trick
Vous m'avez aidé. J'utilisais Locale.getDefault() qui fonctionnait bien dans Eclipse et dans le conteneur WAS mais pas quand je suis allé dans une boîte UNIX. Merci! – iowatiger08