Подтвердить что ты не робот

Не удается найти пакет для базового имени /Bundle, locale en_US

Я использую библиотеку, которая имеет зависимость от JSF.

Когда я пытаюсь запустить свой проект, он показывает следующий массаж исключений.

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)

Любые идеи?

4b9b3361

Ответ 1

Исключением является указание, что в корневой каталог пути path ожидается файл Bundle_en_US.properties или Bundle_en.properties или, по крайней мере, Bundle.properties, но на самом деле его нет.

Убедитесь, что хотя бы один из указанных файлов присутствует в корневой части пути к классам. Или убедитесь, что вы предоставили правильное имя пакета. Например, если файлы пакета действительно размещены в пакете com.example.i18n, вам необходимо передать com.example.i18n.Bundle как имя пакета вместо Bundle.

Если вы используете Eclipse "Dynamic Web Project", корневой каталог classpath представлен папкой src, там, где все ваши пакеты Java. Если вы используете проект Maven, корневой каталог классов для файлов ресурсов представлен src/main/resources.

См. также:

Ответ 2

Maven-плагин-кот

Если вы запустите проект с помощью maven-tomcat-plugin/maven-tomcat7-plugin, вы должны поместить Bundle.properties или даже Resource.properties в src/main/webapp/WEB-INF/classes. Не спрашивайте, почему, потому что, как плагин подделывает tomcat.

Ответ 3

У меня была такая же проблема, и баловое решение исправило ее.

Для записи:

WEB-INF\faces-config -

<?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>

И имел Message.properties в WebContent\Resources (после учебника mkyong)

явное исключение появилось даже тогда, когда я переименовал пакет в "Message_en_us" и "Message_en". Перемещение его в src\сработало.

Если кто-то разместит недостающую часть, чтобы заставить пакеты работать под ресурсами, это было бы красиво.

Ответ 4

Если вы запустите файл .java в Eclipse, вам нужно добавить путь к ресурсу в пути сборки. после этого вы не увидите эту ошибку

Ответ 5

В моем случае проблема заключалась в использовании языкового тега "en_US" в Locale.forLanguageTag(..) вместо "en-US" - используйте тире вместо подчеркивания!

Также используйте Locale.forLanguageTag("en-US") вместо new Locale("en_US") или new Locale("en_US") чтобы определить язык ("en") с регионом ("US") - но new Locale("en") работает.

Ответ 6

В моем случае я имел дело с проектом SpringBoot и получил то же исключение.

Решение достигается путем добавления файла env.properties в classpath (то есть в папку src/main/resource). Проблема заключалась в том, что в конфигурации log4j было свойство типа

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

Ответ 7

У меня была такая же проблема с использованием Netbeans. Я пошел в папку проекта и скопировал файл свойств. Я думаю, что щелкнул "построить", а затем "классы". Я добавил файл свойств в эту папку. Это решило мою проблему.

Ответ 8

Я использую Eclipse (без Maven), поэтому размещаю файл .properties в папке src, который также содержит исходный код java, чтобы иметь файл .properties в папке classes после создания проекта, Он работает нормально. Взгляните на этот пост: https://www.mkyong.com/jsf2/cant-find-bundle-for-base-name-xxx-locale-en_us/

Надеюсь, что это поможет вам.

Ответ 9

Проблема должна заключаться в том, что атрибут resource-bunde > base-name в файле faces-config.xml имеет другой путь к вашим свойствам. Это произошло со мной в первом учебном пособии по Java EE, я дал другое имя пакета при создании проекта, а затем Glassfish не смог найти папку свойств, которая находится на "firstcup.web".

Надеюсь, это поможет.

Ответ 10

Убедитесь, что вы не добавили файлы свойств в неправильную папку ресурсов, поскольку они находятся в разделе "Веб-страницы" и в разделе "Другие источники /...". Они должны были быть в разделе "Другие источники /...".

Ответ 11

Я смог решить проблему, ресурс находился в каталогах моего проекта, но когда утилита junit пыталась загрузить его, она возвращала ошибку MissingResourceException. И причина была в том, что ресурс находился не в classpath пакета тестового класса, поэтому, когда я добавил папку cfg/в мою запись пути к classpath в eclipse и установил выходной каталог в сборке conf для того же пакета классов, проблема заключалась в том, что решена.

Когда вы попробуете этот подход, просто убедитесь, что файл conf classpath показывает запись classpath каталога ресурсов (например, cfg/)