【发布时间】:2019-07-30 15:06:37
【问题描述】:
我正在 Linux 中的 Websphere Liberty 下安装多个应用程序。每个应用程序都需要引用相同的共享库,该共享库加载一个本地驱动程序;该库必须加载到它自己的类加载器中。
在以前的 Websphere (8+) 版本中,使用 UI 以这种方式配置库非常简单:设置范围,给它命名,识别类路径上的 jar,提供本机库路径,然后勾选“使用隔离的类加载器”。 Liberty 则不同。
在 Websphere Liberty 下做类似的做法是什么?
假设如下:
类路径:
/usr/acc/lib/jars/firstjar-1.0.jar
/usr/acc/lib/jars/secondjar-1.0.jar
/usr/acc/lib/3rdparty/thirdjar-1.0.jar
原生驱动:
/usr/acc/lib/3rdparty/driver.so
- 对于本机驱动程序,我只是在文件标签中将其与 JAR 文件一起列出
- 对于包含的类加载器,我需要将其引用为“commonLibraryRef”。
这意味着以下应该是正确的:
<library id="MyLibrary">
<file name="/usr/acc/lib/jars/firstjar-1.0.jar"/>
<file name="/usr/acc/lib/jars/secondjar-1.0.jar"/>
<file name="/usr/acc/lib/3rdparty/thirdjar-1.0.jar"/>
<file name="/usr/acc/lib/3rdparty/driver.so"/>
</library>
<application id="applicationWAR" location="application.war" name="applicationName" type=”war” autoStart="true">
<classloader commonLibraryRef="MyLibrary"/>
<application/>
这有效吗,还是我需要将-Djava.library.path=/usr/acc/lib/3rdparty 添加到jvm.options 文件中?
在提出这个问题时,对 Liberty 实例的访问受到限制,因此 apps.xml 的设计是通过推测进行的,需要这个问题。
【问题讨论】:
-
和说明书一致,不行吗?
标签: java java-native-interface shared-libraries websphere-liberty