我有一个 spring-boot Web 应用程序,今天我将它部署到 Linux 系统。我的应用程序使用 HSM 设备,因此它使用名为 jcryptoki
的库使用它。
我的服务已部署并运行良好,但不幸的是,在执行业务功能时遇到以下错误:nested exception is java.lang.UnsatisfiedLinkError: no jcryptoki in java.library.path
here是我提到的创建服务的文档。
当我通过运行命令 java -jar ...
正常运行此应用程序时它运作良好。
我发现缺少 lib 路径声明 $LD_LIBRARY_PATH 时会发生同样的错误。可能在将应用程序作为服务运行时,系统找不到这个 lib 路径。
我以 root 帐户运行这两种情况,我是否丢失了任何配置或权限?
最佳答案
最后发现服务定义文件中缺少Environment声明变量导致的问题。
带有特定的声明变量:LD_LIBRARY_PATH=LD_LIBRARY_PATH=/opt/safenet/protecttoolkit5/cpsdk/lib/linux-x86_64/
我添加了名为imported_inv 的新文件(位于etc/default 中),其内容如上。在服务定义文件中,我声明了这样的附加信息
重新加载服务,然后它就像一个魅力。
关于java - 在 CentOs 中将 java 应用程序作为服务运行时遇到错误 : nested exception is java. lang.UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66561322/