gpt4 book ai didi

java - WAS Liberty 配置文件 - 使用 ClassLoader.getSystemResourceAsStream 读取属性

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:01:18 25 4
gpt4 key购买 nike

我们正在将我们的应用程序从 WAS 6.1 迁移到 Liberty。我们的应用程序使用第三方 jar,通过 InputStream is = ClassLoader.getSystemResource("myproperty.properties") 读取属性文件。在 WAS 6.1 中,我们将服务器类路径设置为 myproperty.properties 的位置。我们尝试了以下方法在 Liberty 中设置类路径,但没有任何效果

方法 1:在 jvm.options 中设置以下内容(D:\ConfigFiles\DEV\- 包含 myproperty.properties 的路径)

-Djava.class.path=D:\\ConfigFiles\\DEV\\

方法 2:在 server.xml 中设置类加载器,

<library id="config">
<folder dir="${server.config.dir}/config/" includes="*.properties" scanInterval="5s"/>
</library>

<enterpriseApplication id="applicationEAR" location="application.ear" name="application">
<classloader privateLibraryRef="config"/>
</enterpriseApplication>

如果有任何其他方法可以覆盖/设置 Liberty 配置文件中的类路径,请告诉我们?

最佳答案

尝试在 jvm.options 中设置此属性(而不是 -Djava.class.path=path/to/propertyDir):

-Xbootclasspath/a:path/to/propertyDir

这会将属性目录(包含您的资源文件)的路径附加到 JVM 的 Bootstrap 类路径。因为这是一个追加,它应该也适用于 Java 9+(一些相关选项已在 Java 9 中删除)。

我怀疑 -Djava.class.path=... 不起作用的原因是 JVM 从 WLP 服务器脚本获取类路径 - 因此系统属性本质上也被应用服务器 JVM 启动较晚。

您也可以将属性文件放在 JVM 的 lib/ext 目录中,但我还没有测试过。 -Xbootclasspath/a:path 方法适用于我的 Mac - 我认为它也适用于 Windows。

HTH,安迪

关于java - WAS Liberty 配置文件 - 使用 ClassLoader.getSystemResourceAsStream 读取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51209753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com