当前位置: 首页 > 知识库问答 >
问题:

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

丁安宜
2023-03-14

我在网络空间自由 17.0.0.4 上运行。部署了位于 {wlp_install_dir}/lib 目录下的 Web 应用程序和自定义身份验证模块。该jar文件被标记为服务器.xml文件中的。以下是它在服务器中的外观.xml

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

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

已尝试访问以下代码片段:

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

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

但是,两者都不起作用。

知道如何访问位于库jar文件中的属性文件吗?

共有1个答案

史淳
2023-03-14

请参阅我在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>

根据您的需要,您可以使用通用库引用(如图所示)或私有库引用。有关共享库的更多信息,请参阅: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中文件的路径相同。

希望这有帮助,安迪

 类似资料:
  • 在阅读了关于这个主题的大约50个不同的线程后,我还没有能够有任何解决方案工作。 我正在尝试访问JAR中的config.properties文件。 null null file.jar MyApp 此处的files.class 等… icon.jpg config.properties

  • 问题内容: 我正在整理一个.jar文件。我想创建一个非常简单的.properties文件,其中包含诸如用户名和其他内容之类的可配置内容,以便他们可以手动编辑,而不必包括GUI编辑器。 我想做的是能够按此顺序搜索: 指定的属性文件() 当前目录(调用Java的目录)中的MyApp.properties 用户目录中的MyApp.properties(user.home系统属性?) 存储应用程序.jar

  • 假设我们有一个简单的Spring条件,它必须与属性文件中的文件属性相匹配: 不幸的是,上面提到的方法调用都没有返回在属性文件中定义的真实属性。相反,当我为另外两个调用getProperty方法和“${my.property}”字符串时,我得到了null(显然,该属性尚未解析)。

  • 问题内容: 搜寻了几个小时后,就开始对此完全取笑。我还在网站上看到了该问题的各种变体,但似乎无法使其正常工作。JFrame需要从ini文件中读取数据,并且我已经创建了一种打开该文件的方法。所述文件存储在jar文件内称为资源的文件夹中。 当我在编译后运行代码时,这当然可以完美地工作,但是在导出到.jar文件后会引发异常。我已经研究过使用InputStream,FileInputStream,但似乎找

  • 问题内容: 我需要能够访问存储在已编译jar文件中的文件。我已经弄清楚了如何将文件添加到项目中,但是如何在代码中引用它呢?如何将文件从jar文件复制到用户硬盘驱动器上的某个位置?我知道有很多方法可以访问文件(FileInputStream,FileReader等),但是我不知道如何查看自身。 问题答案: 您可以使用如下形式: 如果foo.txt位于JAR文件的根目录中,则可以使用: 我相信,假设该

  • 我在蓝图中使用cm:property-placeholder来加载配置文件: 我可以将值设置为bean,例如${abc}。 如何从java访问配置的任何其他属性? 我计划添加属性列表:prop1=11 prop2=22...propn=nn 由于数量不同,我无法在蓝图中添加所有内容。 谢谢你,维克多