我的 WAR
的 WEB-INF/classes
中有一个名为 abc.properties
的属性文件。另外,我已将其放置在(正确注册的)模块中。当我打电话时:
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:我知道以这种方式放置两个同名的属性文件是错误的做法,但我想知道为什么我会看到这种行为。
最佳答案
可以查看官方documentation关于 EAP 6.4 的类加载优先级
关于java - JBoss 6.4 中类加载的顺序 : Is WEB-INF/classes or modules loaded first?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51414644/