2011-07-11 2 views
1

Je reçois l'URL de service https. J'ai écrit un client Java en utilisant SAAJ. mais je reçois l'exception ci-dessous: -Obtenir PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Message envoyé failed.while invocation du service Web

java.security.PrivilegedActionException: com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: envoyer un message a échoué sun.security.validator.ValidatorException: la construction du chemin PKIX échoué : sun.security.provider.certpath.SunCertPathBuilderException: impossible de trouver chemin de certification valide pour cible demandée

Je le certificat exporté depuis l'URL de service (en utilisant le navigateur.) et enregistré comme jssecacerts imporetd Ensuite cela en utilisant la commande suivante -> keytool -import -file jssecacerts -keystore cacerts

Maintenant, j'ai écrit le client java en utilisant SAAJ comme ci-dessous: -

System.setProperty("javax.net.ssl.keyStore", "C:/Program Files/Java/jre6/lib/security/cacerts"); 
System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); 
URL url = new URL("https://whatever.com/service"); 
SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance(); 
connection = scf.createConnection(); 
response = connection.call(message, url); 

Je ne sais pas où je me trompe ... S'il vous plaît aider ... moi .... Je suis sérieusement en difficulté .. Merci à l'avance ..

+0

Avez-vous trouvé une solution de contournement pour cela? –

Répondre

1

vous n'avez pas besoin de définir ces propriétés du système. Si vous avez importé avec succès les certificats dans le fichier cacerts de jre, alors ils devraient être bons à faire. Je suppose que vous utilisez le "Java" de "C:/Programmes/Java/jre6/bin/java.exe" pour exécuter votre programme.

btw, pourquoi obtenez-vous une PrivilegedActionException? cela implique que vous exécutez avec une sorte de SecurityManager ou dans un appel PrivilegedAction?

+1

Juste pour de futures questions/réponses. Si vous aviez le temps et postez une nouvelle Question, demandez de l'aide et attendez une réponse, alors s'il vous plaît - fournissez la solution quand le problème est résolu/résolu, pas seulement "Je l'ai résolu par tnx". – AlenBer

Questions connexes