假设有多个属性文件
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”。
答案 0 :(得分:1)
它看起来是规范/期望的行为 - 也许您的本机环境在Tomcat和WebSphere启动之间有所不同?
https://docs.oracle.com/javase/7/docs/api/java/util/ResourceBundle.html#getBundle(java.lang.String)
使用指定的基本名称获取默认的资源包 locale ,以及调用者的类加载器。
您可以检查两个环境中Locale.getDefault()
是否不同。