我正在Linux中的Websphere Liberty下安装多个应用程序。每个应用程序都需要引用相同的共享库,后者加载一个本机驱动程序;库必须加载到它自己的类加载器中。
在以前的Websphere(8+)版本中,使用UI以这种方式配置库非常简单:设置作用域,给它一个名称,标识类路径上的JAR,提供本机库路径,然后勾选“use an isolated class Loader”。自由就不一样了。
假设如下:
类路径:
/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
<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的设计是通过推测进行的,需要提出这一问题。
以上是正确的;apps.xml
中的库声明应维护在任何应用程序声明之上。不需要更新jvm.options
。使用fileset
进行简短操作也是可以接受的,并且一个应用程序可以引用多个以逗号分隔的库;演示如下:
<!-- library from above question -->
<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>
<!-- short-hand using fileset -->
<library id="AnotherLib">
<fileset dir="/usr/acc/lib/2ndparty/" includes="*.jar" />
<file name="/usr/acc/lib/2ndparty/driver.so" />
</library>
<!-- short-hand using fileset and no .so file; includes can be *.* -->
<library id="ThirdLib">
<fileset dir="/usr/acc/lib/3/" includes="*.jar" />
</library>
<application id="applicationWAR" location="application.war" name="applicationName" type=”war” autoStart="true">
<classloader commonLibraryRef="MyLibrary,AnotherLib,ThirdLib"/>
<application/>
问题内容: 我正在尝试编写一个将从用户的串行端口读取的Java小程序。为此,我将Java Comm API 与RXTX库结合使用。我已经成功地通过本地Java应用程序读取了数据,但似乎无法在applet中进行相同的操作。问题在于RXTX库是一个本机库,我还没有找到在Java小程序中加载该库的方法。我发现了两篇有趣的文章(在Applets中使用JNI引用了本文),但是这两篇文章已有10多年的历史了,
我正在通过Node.js1的[node-java]包装器运行一个JNA编译的本机库 这个库是Hunsplaw JNA,它包装了Hunsplaw拼写库。 当试图从lib路径加载本机库时,所发生的情况是节点似乎挂起: 库就在那里,我也尝试了该方法的第二个选项,复制到一个临时文件夹中并从那里加载,这样我就可以看到 它就在那里。
我有以下分布 主要的jar包含main方法,我想在其中访问lib提供的本机函数。所以被捆绑在发行版中。开始sh只需设置java的类路径和引导。 加载库的最佳方法是什么。那么应用程序内部的库呢?我知道两种方法: 系统。加载(绝对路径) 系统。loadLibrary(名称) 前者需要库在文件系统中的绝对路径,后者需要设置特定于应用程序的java。图书馆路径JVM参数。在这种情况下,哪种解决方案更好?将
我想用Spring Boot和JWT开始一个项目。我看到了一些将刷新令牌保存在数据库中的示例。我是否必须将刷新令牌插入数据库,或者我是否有其他最佳实践方法? 如果我必须插入数据库,以删除过期的令牌,我应该在Spring中创建一个作业吗?