J'ai une application Web à démarrage rapide et aujourd'hui je la déploie sur un système Linux. Mon application utilise un appareil HSM et utilise donc une bibliothèque appelée jcryptoki pour l'utiliser. Mon service est déployé et fonctionne bien, mais malheureusement, je suis confronté à l'erreur ci-dessous lors de l'exécution de la fonction commerciale: nested exception is java.lang.UnsatisfiedLinkError: no jcryptoki in java.library.path

voici le document qui J'ai parlé de créer un service.

Lorsque j'exécute cette application normalement en exécutant la commande java -jar ..., cela a bien fonctionné.

J'ai trouvé que la même erreur se produisait lorsque je manquais la déclaration de chemin de la bibliothèque $ LD_LIBRARY_PATH. Peut-être que lors de l'exécution d'une application en tant que service, le système ne peut pas être trouvé dans ce chemin de bibliothèque.

J'exécute les deux cas en tant que compte root, ai-je perdu quelque chose dans la configuration ou l'autorisation?

1
ThanhLD 10 mars 2021 à 11:52

1 réponse

Meilleure réponse

Enfin, j'ai trouvé le problème causé par la variable de déclaration d'environnement manquante dans le fichier de définition de service. Avec une variable de déclaration spécifique: LD_LIBRARY_PATH=LD_LIBRARY_PATH=/opt/safenet/protecttoolkit5/cpsdk/lib/linux-x86_64/ J'ajoute un nouveau fichier nommé import_inv (situé dans etc / default) avec le contenu ci-dessus. Dans le fichier de définition du service, je déclare des informations supplémentaires comme celle-ci entrez la description de l'image ici

Recharger le service et puis cela fonctionne comme un charme.

0
ThanhLD 11 mars 2021 à 01:23