Ошибка «Не удается найти пакет для сообщений с базовым именем»

#java #jsf-2

#java #jsf-2

Вопрос:

при запуске моего приложения я получаю следующую ошибку:

 javax.el.ELException: /view/doi/common/navigation.xhtml: Can't find bundle for base name messages, locale de_CH
at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:90)
at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:302)
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:105)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:845)
  

В моем faces-config я указал это:

 <resource-bundle>
  <base-name>messages</base-name>
  <var>msg</var>
</resource-bundle>
  

и у меня есть каталог src web resources msg с файлом messages_en.propeties.

Чего мне не хватает?

Ответ №1:

На основе исключения язык, который ищет сервер, является de_CH или не соответствует этому de . Если это тоже не удастся, тогда он будет искать язык «по умолчанию», но что это такое, зависит от настроек вашей системы. Так что он может даже никогда не перейти messages_en.properties . Вы могли бы предоставить messages.properties вместо этого (без какого-либо индикатора локали) значение по умолчанию, если это то, что вы хотите.

Также прочитайте здесь полное объяснение того, как работает разрешение локали: http://java.sun.com/developer/technicalArticles/Intl/ResourceBundles /

Комментарии:

1. Да, я забыл указать messages.properties для значений по умолчанию… Спасибо