获取PrivilegedActionException:com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:消息发送失败。同时调用Web服务

时间:2011-07-11 06:23:56

标签: java web-services

我正在使用https服务网址。我用SAAJ编写了java客户端。但我得到以下例外: -

java.security.PrivilegedActionException:com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl:消息发送失败 sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径

  
    

我从服务URL导出证书(使用浏览器。)并保存为jssecacerts     然后使用以下命令来实现这个 - > keytool -import -file jssecacerts -keystore cacerts

  

现在我使用SAAJ编写了java客户端,如下所示: -

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); 

我不知道我错在哪里...请帮助......我......我遇到了麻烦...... 在此先感谢..

1 个答案:

答案 0 :(得分:1)

您无需设置这些系统属性。如果您成功将证书导入jre的cacerts文件中,那么它们应该是好的。我假设您正在使用“C:/ Program Files / Java / jre6 / bin / java.exe”中的“java”来实际运行您的程序。

不过,为什么你会收到PrivilegedActionException?这意味着您正在使用某种SecurityManager或在PrivilegedAction调用中运行吗?

相关问题