web-dev-qa-db-fra.com

Impossible de trouver le paquet pour le nom de base/Bundle, les paramètres régionaux en_US

J'utilise une bibliothèque qui a une dépendance sur JSF.

Quand j'essaie de faire fonctionner mon projet, il montre les massages suivants. 

Java.util.MissingResourceException: Can't find bundle for base name /Bundle, locale en_US
at Java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.Java:1427)
at Java.util.ResourceBundle.getBundleImpl(ResourceBundle.Java:1250)
at Java.util.ResourceBundle.getBundle(ResourceBundle.Java:705)

Des idées ?

31

L'exception indique qu'un fichier Bundle_en_US.properties, ou Bundle_en.properties, ou au moins Bundle.properties est attendu à la racine du chemin d'accès aux classes, mais qu'il n'en existe aucun.

Assurez-vous qu'au moins un des fichiers mentionnés est présent dans la racine du classpath. Ou bien, assurez-vous de fournir le nom de paquet approprié. Par exemple, si les fichiers d'ensembles ont en réalité été placés dans le package com.example.i18n, vous devez passer com.example.i18n.Bundle en tant que nom d'ensemble au lieu de Bundle.

Si vous utilisez Eclipse "Projet Web dynamique", la racine du chemin de classe est représentée par le dossier src, où se trouvent tous vos packages Java. Si vous utilisez un projet Maven, la racine du chemin de classe pour les fichiers de ressources est représentée par le dossier src/main/resources.

Voir également:

50
BalusC

maven-Tomcat-plugin

Si vous démarrez le projet à l'aide du maven-Tomcat-plugin/maven-Tomcat7-plugin, vous devez placer le Bundle.properties, voire le Resource.properties dans src/main/webapp/WEB-INF/classes. Ne demandez pas pourquoi, c'est parce que le plugin simule un Tomcat.

10
Peter Rader

J'ai eu le même problemo et solution balus résolu.

Pour mémoire:

WEB-INF\faces-config est

<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://Java.Sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/javaee 
http://Java.Sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
    <application>
        <locale-config>
            <default-locale>en</default-locale>
        </locale-config>
        <message-bundle>
            Message
        </message-bundle>
    </application>
</faces-config>

Et avait Message.properties sous WebContent\Resources (après le tutoriel de mkyong)

l'exception embêtante est apparue même lorsque j'ai renommé le paquet en "Message_en_us" et "Message_en". Le déplacer vers src\travaillée. 

Si quelqu'un publie la pièce manquante pour que les liasses fonctionnent avec des ressources, ce serait une belle chose.

5
demonz demonz

Si vous exécutez le fichier .Java dans Eclipse, vous devez ajouter le chemin de la ressource dans le chemin de génération. après cela, vous ne verrez plus cette erreur

4
harry

Dans mon cas, le problème consistait à utiliser la balise de langue "en_US" dans Locale.forLanguageTag(..) au lieu de "en-US" - utilisez un tiret au lieu de souligné!

Utilisez également Locale.forLanguageTag("en-US") au lieu de new Locale("en_US") ou new Locale("en_US") pour définir une langue ("en") avec une région ("US") - mais new Locale("en") fonctionne.

2
electrobabe

Dans mon cas, je traitais de SpringBoot project et j'ai la même exception. 

La solution consiste à ajouter le fichier env.properties dans classpath (dossier i.e. src/main/resource). Ce qui faisait le problème est que dans la configuration de log4j il y avait une propriété comme 

<Property name="basePath">${bundle:env:log.file.path}</Property>

1
milosdju

J'ai eu le même problème en utilisant Netbeans. Je suis allé dans le dossier du projet et j'ai copié le fichier de propriétés. Je pense cliqué sur "construire" puis "classes". J'ai ajouté le fichier de propriétés dans ce dossier. Cela a résolu mon problème.

0
Sedrick

Assurez-vous de ne pas ajouter les fichiers de propriétés dans le mauvais dossier de ressources car il y en a un sous "Pages Web" et un sous "Autres sources/...". Ils devaient être classés sous "Autres sources/...".

0
Dinca Adrian

J'utilise Eclipse (sans Maven) et je place donc le fichier .properties dans le dossier src qui contient également le code source Java, afin d'avoir le fichier .properties dans le dossier classes après la construction du projet. Cela fonctionne bien . Jetez un oeil à ce post: https://www.mkyong.com/jsf2/cant-find-bundle-for-base-name-xxx-locale-en_us/

J'espère que cela vous aidera.

0
trungvt89.it

Le problème doit être que l'attribut resource-bunde> nom-base du fichier faces-config.xml a un chemin différent pour vos propriétés. Cela m'est arrivé lors du premier tutoriel Java EE, j'ai donné un nom de package différent lors de la création du projet, puis Glassfish n'a pas pu trouver le dossier de propriétés qui se trouve sur "firstcup.web". 

J'espère que ça aide.

0
Dago MX