Erreur inattendue: java.security.InvalidAlgorithmParameterException: le paramètre trustAnchors doit être non vide
Hie,
J'ai écrit un code java qui se connecte à Salesforce et met à jour une valeur de y, Sa fonctionne bien, quand je le lance à partir de mon système local comme un application java autonome mais mon objectif principal est de prendre que comme un composant java dans filenet BPM workflow , de sorte que lorsque le processus arrive à cette composant java puis il lève une erreur comme le titre
l'ensemble de la pile trace de la pile est comme suit
com.sforce.ws.ConnectionException: Failed to send request to https://login.salesforce.com/services/Soap/c/24.0/0DF90000000PX8r
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:129)
at com.sforce.soap.enterprise.EnterpriseConnection.login(EnterpriseConnection.java:1052)
at com.sforce.soap.enterprise.EnterpriseConnection.<init>(EnterpriseConnection.java:399)
at salesforceupdate.SalesForceUpdate.main(SalesForceUpdate.java:70)
at salesforceupdate.Callin.UpdateSL(Callin.java:19)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at filenet.vw.integrator.adaptors.java.VWJavaAdaptor.execute(VWJavaAdaptor.java:426)
at filenet.vw.integrator.base.VWAdaptorEx$AdaptorAction.run(VWAdaptorEx.java:120)
at java.security.AccessController.doPrivileged(AccessController.java:284)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:727)
at filenet.vw.integrator.base.VWAdaptorEx.run(VWAdaptorEx.java:360)
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at com.ibm.jsse2.n.a(n.java:42)
at com.ibm.jsse2.tc.a(tc.java:96)
at com.ibm.jsse2.tc.a(tc.java:340)
at com.ibm.jsse2.tc.a(tc.java:555)
at com.ibm.jsse2.tc.a(tc.java:510)
at com.ibm.jsse2.tc.startHandshake(tc.java:381)
at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:151)
at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:64)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1024)
at com.ibm.net.ssl.www2.protocol.https.b.getOutputStream(b.java:51)
at com.sforce.ws.transport.JdkHttpTransport.connectRaw(JdkHttpTransport.java:115)
at com.sforce.ws.transport.JdkHttpTransport.connect(JdkHttpTransport.java:79)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:107)
... 13 more
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at com.ibm.jsse2.util.e.<init>(e.java:117)
at com.ibm.jsse2.util.d.a(d.java:20)
at com.ibm.jsse2.hc.a(hc.java:58)
at com.ibm.jsse2.hc.checkServerTrusted(hc.java:88)
at filenet.ws.utils.jsse.FnTrustManager.checkServerTrusted(FnTrustManager.java:156)
at com.ibm.jsse2.hb.a(hb.java:382)
at com.ibm.jsse2.hb.a(hb.java:23)
at com.ibm.jsse2.gb.n(gb.java:295)
at com.ibm.jsse2.gb.a(gb.java:269)
at com.ibm.jsse2.tc.a(tc.java:347)
at com.ibm.jsse2.tc.g(tc.java:416)
at com.ibm.jsse2.tc.a(tc.java:60)
... 21 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:287)
at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:143)
at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:101)
at com.ibm.jsse2.util.e.<init>(e.java:17)
... 32 more
J'ai googlé tout au sujet de cette erreur et a généré un .crt fichier du domaine et créé un keystore fichier et a mentionné que dans mon code
System.setProperty("javax.net.ssl.trustStore","C:\\Program Files\\IBM\\WebSphere\\AppServer\\java\\jre\\bin\\secure.ts");
System.setProperty("javax.net.ssl.trustStorePassword", "xxxxx");
Par la façon dont j'ai même modifié clé de managemnet et des certificats a ÉTÉ la console
Mais j'obtiens toujours le même message d'erreur..Ne sais pas quoi faire , Toute aide serait super
Merci d'Avance
source d'informationauteur Bharath R
Vous devez vous connecter pour publier un commentaire.
Ce message d'erreur signifie généralement que votre truststore ne peut pas être lu. Ce que je voudrais vérifier:
fichier de clés certifiées?
keytool -list
)?Edit:
System.setProperty
mais définissez les options en cas de départ du processus Java avec-Djavax.net.ssl.XXX
. La raison de ce conseil est la suivante: IBM cadre de sécurité peut lire les options avant vous définissez la propriété (par exemple, dans unstatic
bloc d'une classe). Bien sûr, c'est un cadre spécifique et peuvent changer d'une version à l'autre.