java - 在 CentOs 中将 java 应用程序作为服务运行时遇到错误 : nested exception is java. lang.UnsatisfiedLinkError

标签 java linux spring-boot service centos

我有一个 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 中),其内容如上。在服务定义文件中,我声明了这样的附加信息
enter image description here
重新加载服务,然后它就像一个魅力。

关于java - 在 CentOs 中将 java 应用程序作为服务运行时遇到错误 : nested exception is java. lang.UnsatisfiedLinkError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66561322/

相关文章:

java - Spring 4 - addResourceHandlers 不解析静态资源

javaFX: ListView 选择模型内的单选按钮

java - JDK1.6 中来自 ManagementFactory 的托管 Mbean - NotCompliantMBeanException :

c++ - 发送较少字节数的 TCP 套接字

c++ - 在 C++ 中使用 shell 命令

java - Tomcat 上的 SpringBoot : Error creating bean with name 'jacksonObjectMapperBuilder'

java - Hibernate ManyToMany 方法抛出 'org.hibernate.LazyInitializationException' 异常

java - 将监听器添加到下拉菜单

java - Spring Boot Rest Web服务在Get Request中获取多个参数

linux命令清空一个目录的所有文件