2017-03-28 2 views
0

J'utilise maven-jaxb2 pour générer des classes afin de passer des appels à un webservice.SunCertPathBuilderException => Génération Maven JAXB2 avec certificat

<plugin> 
    <groupId>org.jvnet.jaxb2.maven2</groupId> 
    <artifactId>maven-jaxb2-plugin</artifactId> 
    <version>0.12.3</version> 
    <configuration> 
     <schemaLanguage>WSDL</schemaLanguage> 
     <schemas> 
      <schema> 
       <url>https://my-secured-webservice.com/file?wsdl</url> 
      </schema> 
     </schemas> 
     <generateDirectory>src\main\java</generateDirectory> 
     <verbose>true</verbose> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>generate-sources</phase> 
      <goals> 
       <goal>generate</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

Le wsdl a besoin d'un certificat qui est correctement installé sur ma machine. Je peux accéder au wsdl avec mon navigateur.

J'ai ajouté 2 propriétés avec les propriétés-maven-plugin

<property> 
    <name>javax.net.ssl.keyStore</name> 
    <value>/path/to/JKS/file.jks</value> 
</property> 
<property> 
    <name>javax.net.ssl.keyStorePassword</name> 
    <value>my-super-secret-password</value> 
</property> 

J'ai créé mon fichier JKS par:

keytool -importkeystore -deststorepass my-super-secret-password -destkeystore /path/to/JKS/file.jks -srckeystore /path/to/file.p12 -srcstoretype PKCS12 

Quand je le déclenchement mvn: generate- sources, j'ai l'erreur suivante surgissant:

com.sun.istack.SAXParseException2; IOException thrown when processing "https://my-secured-webservice.com/file?wsdl". Exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target. 

Qu'est-ce que je fais mal?

Répondre

1

Je suis désolé .. je fixe sur mon propre:

J'ai choisi le certificat de l'emplacement de wsdl. (Je l'ai utilisé chrome pour télécharger le fichier .crt)

Puis:

sudo keytool -importcert -file /path/to/downloaded/certificate.crt -alias myalias -keystore $JAVA_HOME/jre/lib/security/cacerts 

J'importé le certificat à mes cacerts ..