WebSphere Liberty:从库jar文件访问属性文件

问题描述 投票:1回答:1

我正在运行WebSphere Liberty 17.0.0.4。部署了位于{wlp_install_dir}/lib目录下的Web应用程序和自定义身份验证模块。并且该jar文件在server.xml文件中标记为library。以下是它在server.xml中的外观

<library id="CustomLoginModuleLib">
    <fileset dir="${wlp.lib.dir}" includes="custom_auth.jar"/>
</library>

现在的问题是,我想使用位于.properties文件中的custom_auth.jar文件到Web应用程序。

尝试过以下代码段来访问:

this.getClass().getResourceAsStream("location/of/package/file.properties");

ClassLoader.getSystemResourceAsStream("location/of/package/file.properties");

但是,都不起作用。

任何想法我们如何访问位于库jar文件中的属性文件。

websphere-liberty open-liberty
1个回答
3
投票

请在dwAnswers上查看我对同一问题的回复:https://developer.ibm.com/answers/questions/444708/how-to-access-properties-file-located-in-library-j.html

总结一下答案:

(1)我绝不会建议将用户提供的JAR文件放在{wlp_install_dir} / lib目录中 - 该dir仅用于IBM提供的JAR文件。相反,我建议将custom_auth.jar放在服务器目录或共享目录中。

(2)您需要将共享库与您的应用程序相关联,如下所示:

 <application location ="{appName}.war"> <!-- or {appName}.ear -->
    <classloader commonLibraryRef="CustomLoginModuleLib" />
 </application>

根据您的需要,您可以使用commonLibraryRef(如图所示)或privateLibraryRef。有关共享库的更多信息,请访问:https://www.ibm.com/support/knowledgecenter/SSD28V_9.0.0/com.ibm.websphere.wlp.core.doc/ae/cwlp_sharedlibrary.html

(3)至于在Java代码中加载文件,您的第一行将起作用 - 假设这是指应用程序中的类的实例。我还假设您传递给getResourceAsStream方法的路径与库JAR中文件的路径相同。

希望这会有所帮助,安迪

© www.soinside.com 2019 - 2024. All rights reserved.