java ResourceBundle.getBundle() 不确定

java ResourceBundle.getBundle() undeterministic

我在 WebSphere 上的 Java EE 应用程序 运行 上发生了非常非常奇怪的情况。

EAR
  --someJar.jar
  ----config/propfile.properties

  --WAR
    ----WEB-INF
      ------classes
        --------config/propfile.properties

当应用程序启动时,ResourceBundle.getBundle("config/propfile.properties") 似乎从 WAR/WEB-INF/classes/config/propfile.properties.

中读取了一些属性

但是,在应用程序启动后 运行,ResourceBundle.getBundle("config/propfile.properties") 似乎从 someJar.jar/config/propfile.properties 中读取了 someProperty。

我认为事情就是这样发生的,因为我们对每个文件的 someProperty 有不同的值,并且我们遇到了一些错误(由于 someJar.jar/config/propfile.properties 的值不正确)。根据 Java EE 规范,WEB-INF/classes 应该首先加载?

这可能吗?我们无法在任何较低的环境中复制该问题。

WAR/META-INF/MANIFEST.MF 是...Class-Path: lib/begin...lib/end someJar.jar

如果对 ResourceBundle.getBundle("config/propfile.properties") 的第二次调用来自 ejb 模块中的 class,它将无法访问 WAR/WEB-INF/classes/config/propfile.properties。这是因为每个模块都有不同的 class 加载器。

在以下 link 下载 ee 规范(或您的 javaee 标准的相应规范)。

http://download.oracle.com/otndocs/jcp/javaee-6.0-fr-eval-oth-JSpec/

在此版本中,相关部分是 EE.8.3