我在我的WAR's WEB-INF/classes中有一个名为WAR的属性文件。另外,我已经将它放置在一个(正确注册的)模块中。
ResourceBundle.getBundle("abc")哪一个文件会被挑选?
在我们的生产环境中,放置在WAR中的文件被选中(一致),但是在UAT环境中(使用相同版本的JBoss),它是模块中的属性文件,被选中(一致)。
是否有一个由JBoss将资源加载到类路径的定义顺序,还是这种情况是随机发生的?(不过,我们还没有观察到任何随机性。)
(模块在生产服务器中正确注册,因为其他资源,即放在模块中的ojdbc jar正在正确加载)
这是我们注册模块中的module.xml
<module xmlns="urn:jboss:module:1.0" name="com.oracle">
<resources>
<resource-root path="ojdbc6.jar"/>
<resource-root path="properties"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>abc.properties放在上面模块中定义的properties文件夹中。
P.S:我知道用这种方式放置两个同名的属性文件是错误的做法,但我想知道为什么我会看到这样的行为。
发布于 2018-07-20 05:05:33
您可以检查关于EAP6.4类加载优先级的官方文档
https://stackoverflow.com/questions/51414644
复制相似问题