1

我在 WebSphere Liberty 17.0.0.4 上运行。部署了位于{wlp_install_dir}/lib目录下的 Web 应用程序和自定义身份验证模块。并且该 jar 文件被标记为libraryserver.xml 文件。这是它在 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 文件中的属性文件。

4

1 回答 1

4

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

从那里总结答案:

(1) 我绝不建议将用户提供的 JAR 文件放在 {wlp_install_dir}/lib 目录中 - 该目录仅适用于 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 代码中加载文件,您的第一行将起作用 - 假设 this 引用您的应用程序中的类的实例。我还假设您传递给 getResourceAsStream 方法的路径与库 JAR 中文件的路径相同。

希望这会有所帮助,安迪

于 2018-04-26T15:44:46.413 回答