我在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文件中的属性文件。
答案 0 :(得分: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中文件的路径相同。
希望这有帮助,Andy