web-dev-qa-db-fra.com

Maven: le paramètre trustAnchors doit être non vide et 'parent.relativePath' @ InvalidAlgorithmParameterException @ POM parent non résoluble

Je suis nouveau à Maven et Spring.

Le projet s'exécute dans mon environnement de test local, mais pas sur le système déployé. Sur le système déployé: j'ai un nouveau Ubuntu installé avec OpenSDK 10.0.1, Maven 3.5.2 Je suis derrière un pare-feu différent et j'ai un magasin de clés et un magasin de clés différents.

Maven crache:

POM parent non résoluble pour l'organisation .[%mything%]. app: useraut: 0.0.1-SNAPSHOT: Impossible de transférer l'artefact org.springframework.boot: spring-boot-starter-parent: pom: 1.5.9.RELEASE from/to central ( https://repo.maven.Apache.org/maven2 ): Java.lang.RuntimeException: erreur inattendue: Java.security.InvalidAlgorithmParameterException: le paramètre trustAnchors doit être non vide et 'parent.relativePath' ne pointe sur aucun POM local @ ligne 14, colonne 10 -> [Aide 2]

sniper de pom:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.9.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

(aucun proxy défini)

Il semble que je puisse trouver des idées pour la solution: Erreur - le paramètre trustAnchors doit être non vide Mais je n'ai aucune idée par où commencer la configuration de Spring, Maven ou trustStore

7
Tormod

D'après ce que j'ai découvert, il y a une faiblesse dans le package de distribution sur Ubuntu Linux pour OpenJDK Java 9 et plus. Donc, l'installation de default-jdk peut casser les choses.

Citation de: ( https://bugs.launchpad.net/ubuntu/+source/openjdk-lts/+bug/1768799 ) + mises à jour de certificats supplémentaires.

Notez que la réinstallation de default-jdk est facultative et openjdk-8 peut être continuellement utilisé.

Solution: supprimez default-jdk, installez openjdk-8, supprimez openjdk-8 et réinstallez default-jdk:

Sudo apt purge openjdk-default Java-common

Sudo apt purge default-jdk Java-common

Sudo dpkg --purge --force-depend ca-certificats-Java

Sudo apt install openjdk-8-jre

Sudo apt-get install ca-certificats-Java

Sudo apt purge openjdk-8-jre

Sudo apt install default-jdk

Après cela, j'ai également découvert que la version de Spring que j'utilisais ne fonctionnait pas bien sur Java 10.0.1 donc retour à Java 8.x pour cet objectif.

8
Tormod

Fondamentalement, il s'agit de ca-certificats-Java. C'est encore plus frustrant lorsque vous obtenez le JDK en dehors des référentiels de distribution Linux.

Ici, j'ai obtenu l'indice de: http://rabexc.org/posts/certificates-not-working-Java

J'ai modifié le script bash dans le commentaire

CACERTS="/home/user/cacerts"
cd /etc/ssl/certs
for file in *.pem; do
   echo "Importing $file..."
   openssl x509 -outform der -in "$file" -out /tmp/certificate.der
   keytool -import -alias "$file" -keystore $CACERTS \
           -file /tmp/certificate.der -deststorepass changeit -noprompt
done

Modifiez la première ligne à votre convenance. Je l'exécute sur Debian, pour d'autres systèmes, vous devrez peut-être également modifier la deuxième ligne.

Ensuite, je copie le fichier "cacerts" dans JDK qui se trouve sur $ Java_HOME/jre/lib/security/cacerts

0
user3121260