2016-01-22 1 views
1

скажем, если есть несколько свойств файлаПочему ResourceBundle.getBundle (String ул) не может найти значение из свойств файла по умолчанию в Websphere

captions.properties 
captions_es_ES.properties 
captions_cn_CN.properties 
captions_th_Th.properties 

В настоящее время на сервере Tomcat, если вызов

ResourceBundle.getBundle("someCaption"); 

есть нет проблем с получением значения свойства

Однако при развертывании приложения в Websphere, если local является en_US и вызывает тот же код выше, то приложение всегда бросает MissingResourceException, но одна и та же линия работает отлично в любой другой иностранной локали.

И если применять локаль, как Locale.ROOT, то, конечно, работает, но я думал, что метод geBundle (ул) должен свойствами проверок по умолчанию по умолчанию, независимо от того, что

Я могу гарантировать, что «someCaption» существует во всех файлах свойств языка.

ответ

1

Это похоже на поведение спецификации/ожидаемого - может быть, ваша родная среда зависит от запуска Tomcat и WebSphere?

https://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String)

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

Вы можете проверить, отличается ли Locale.getDefault() в двух средах.