如何在运行时或Websphere的类路径中使war / ear文件可以使用外部xml配置文件?

问题描述

我们正在使用 Websphere 9应用程序服务器。我们希望将一些配置文件(例如xml和属性文件)放在Websphere服务器的单独目录中,并希望它们在运行时也可以被ear / war文件访问。我听说过共享库方法,但它只能将class和jar文件用作共享库,而不能将xml和其他文件用作共享库。谁能告诉我一个替代解决方案,在运行时或在类路径中将外部xml配置文件设置为可用于war / ear文件

解决方法

如果将目录添加为共享库路径,则目录本身将作为类路径条目添加到引用共享库的任何类加载器(以及其中的任何jar / zip文件),因此您将拥有通过getResource()API访问松散的文件,例如XML文件。

请注意,getResource()的参数必须相对于目录中的位置。例如,如果您有文件test.xml,则可以将其添加到目录/ sharedlib中,创建一个名为“ library1”的共享库,并将其与EAR或WAR关联,然后您的应用程序可以使用它来获取在文件中:

this.class.getResource("test.xml");

那将返回一个指向/sharedlib/test.xml的URL。