2011-05-09 88 views
1

我连接到Web服务的SSL客户端验证客户端验证,我设置了密钥库由:SSL密钥和用Java

System.getProperties().setProperty("javax.net.ssl.keyStore", 
            "d:/banking/BankClient/classes/xxcompany/bank/certificate/keystore.jks"); 
System.getProperties().setProperty("javax.net.ssl.keyStorePassword","password"); 

当调用Web服务:

GetAccountBalanceResponse resp = services.getAccountBalance(request); 

,我收到了以下错误

WARNING:Cannot connecti with url: https://[redacted] ; reason: javax.xml.soap.SOAPException: Message send failed: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
Exception in thread "main" java.rmi.RemoteException: ; nested exception is: 
    HTTP transport error: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at xxcompany.bank.proxy.runtime.ServicesBinding_Stub.getAccountBalance(ServicesBinding_Stub.java:146) 
    at xxcompany.bank.proxy.ServicesPortClient.getAccountBalance(ServicesPortClient.java:48) 
    at xx.bank.client.main(client.java:111) 
Caused by: HTTP transport error: javax.xml.soap.SOAPException: javax.xml.soap.SOAPException: Message send failed: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at oracle.j2ee.ws.client.http.HttpClientTransport.invokeImpl(HttpClientTransport.java:174) 
    at oracle.j2ee.ws.client.http.HttpClientTransport.invoke(HttpClientTransport.java:150) 
    at oracle.j2ee.ws.client.StreamingSender._sendImpl(StreamingSender.java:176) 
    at oracle.j2ee.ws.client.StreamingSender._send(StreamingSender.java:113) 
    at xxcompany.bank.proxy.runtime.ServicesBinding_Stub.getAccountBalance(ServicesBinding_Stub.java:130) 
    ... 2 more 

密钥库包含客户端的私人证书,证书是有效的,工作正常,当你sed在浏览器中。我应该如何解决它?

非常感谢。

回答