Spring ReloadableResourceBundleMessageSource не находит файл свойств

У меня есть два файла в каталоге WEB-INF/i18n:

  • приложение.свойства
  • сообщения.свойства

Я правильно настроил свой компонент ReloadableResourceBundleMessageSource следующим образом (spring mvc):

<bean class="org.springframework.context.support.ReloadableResourceBundleMessageSource" id="messageSource" p:basenames="WEB-INF/i18n/messages,WEB-INF/i18n/application"
        p:fallbackToSystemLocale="false"/>

и все же я получаю это от Spring mvc:

2012-09-03 02:59:45,911 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - Loading properties [application.properties]
2012-09-03 02:59:45,912 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [WEB-INF/i18n/application_fr] - neither plain properties nor XML
2012-09-03 02:59:45,912 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - Loading properties [messages.properties]
2012-09-03 02:59:45,912 [http-bio-8080-exec-4] DEBUG org.springframework.context.support.ReloadableResourceBundleMessageSource - No properties file found for [WEB-INF/i18n/messages_fr] - neither plain properties nor XML

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


person balteo    schedule 03.09.2012    source источник


Ответы (1)


В сообщении журнала говорится следующее: application_fr

Обратите внимание на _fr. Это означает, что он пытается найти французскую версию application.properties (application_fr.properties). Если он не может найти французские свойства, он должен вернуться к значениям по умолчанию (application.properties), поэтому ваши реквизиты все равно должны быть найдены. Причина, по которой он ищет французские реквизиты, связана с настройками локали где-то в вашем приложении. Может быть из браузера, JVM, приложения.

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

<bean class="org.springframework.web.servlet.i18n.FixedLocaleResolver" p:defaultLocale="en"/>   
person Solubris    schedule 04.09.2012
comment
Спасибо Литий. Как вы говорите, он должен вернуться к application.properties, поэтому, изменю ли я имя файла на application_fr.properties или добавлю предложенный вами код, я все равно получаю сообщение об ошибке... Есть другие идеи? - person balteo; 05.09.2012
comment
Ну это не ошибка, это отладочное сообщение. Может вести себя корректно. Вы находите неправильные значения свойств? Кроме того, вы должны убедиться, что application.properties существует, несмотря ни на что. Таким образом, вы можете сделать копию application.properties в application_fr.properties . - person Solubris; 05.09.2012
comment
ммм. Я не понимаю, что вы имеете в виду под: Кроме того, вы должны убедиться, что application.properties существует, несмотря ни на что. Таким образом, вы можете сделать копию application.properties в application_fr.properties Имея application_fr.properties и application.properties? Я пробовал это уже... - person balteo; 05.09.2012