为什么ResourceBundle.getBundle(String str)无法从Websphere中的默认属性文件中查找值

时间:2016-01-22 21:32:29

标签: java 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(str)方法应默认检查默认属性,无论什么

我可以保证所有语言属性文件中都存在“someCaption”。

1 个答案:

答案 0 :(得分:1)

它看起来是规范/期望的行为 - 也许您的本机环境在Tomcat和WebSphere启动之间有所不同?

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

  

使用指定的基本名称获取默认的资源包   locale ,以及调用者的类加载器。

您可以检查两个环境中Locale.getDefault()是否不同。