使用API​​ java的Outlook的证书错误。 PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException“

问题描述:

从我在网上找到的,似乎是证书SSL。 我在互联网上搜索,模式如何解决这个问题,但所有的信息是什么我发现不完整或者是Gmail或其他 我的问题: - 我需要什么样的证书的Outlook - 我在哪里可以找到此证书 - 什么是安装它 - 什么设置,我需要做的使用API​​ java的Outlook的证书错误。 PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException“

步骤

请帮助我!我试着解决这个问题很长一段时间,即使是好的教程也没关系 波纹管是我的代码

public class SendEmail { 

    public void sendEmail() { 
     try { 
      ExchangeService service = new ExchangeService(); 

        ExchangeCredentials credentials = new WebCredentials("user", "pass"); 

        service.setCredentials(credentials); 
        System.out.println("sendemail 4"); 
        service.setUrl(new java.net.URI("https://" + "My company domain" 
         + "/EWS/Exchange.asmx")); 

        service.setTraceEnabled(true); 
        EmailMessage msg = new EmailMessage(service); 
        msg.setImportance(Importance.High); 
        msg.setSubject("Hello world!"); 

        msg.setBody(MessageBody.getMessageBodyFromText("Mesaj trimis din JAVA")); 
        msg.getToRecipients().add("[email protected]"); 
        msg.send(); 
     } catch (URISyntaxException e) { 
      e.printStackTrace(); 
     } catch (ServiceLocalException e) { 
      e.printStackTrace(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

} 

MY EROR

microsoft.exchange.webservices.data.ServiceRequestException: The request failed. The request failed. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:70) 
    at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:150) 
    at microsoft.exchange.webservices.data.ExchangeService.internalCreateItems(ExchangeService.java:423) 
    at microsoft.exchange.webservices.data.ExchangeService.createItem(ExchangeService.java:484) 
    at microsoft.exchange.webservices.data.Item.internalCreate(Item.java:209) 
    at microsoft.exchange.webservices.data.EmailMessage.internalSend(EmailMessage.java:125) 
    at microsoft.exchange.webservices.data.EmailMessage.send(EmailMessage.java:240) 
    at schedule.SendEmail.sendEmail(SendEmail.java:50) 
    at schedule.servlet.doPost(servlet.java:144) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: microsoft.exchange.webservices.data.ServiceRequestException: The request failed. sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at microsoft.exchange.webservices.data.ServiceRequestBase.getEwsHttpWebResponse(ServiceRequestBase.java:709) 
    at microsoft.exchange.webservices.data.ServiceRequestBase.validateAndEmitRequest(ServiceRequestBase.java:639) 
    at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(SimpleServiceRequestBase.java:58) 
    ... 29 more 
Caused by: 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 
    at sun.security.ssl.Alerts.getSSLException(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source) 
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source) 
    at sun.security.ssl.Handshaker.fatalSE(Unknown Source) 
    at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) 
    at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) 
    at sun.security.ssl.Handshaker.processLoop(Unknown Source) 
    at sun.security.ssl.Handshaker.process_record(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source) 
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:262) 
    at org.apache.http.impl.conn.HttpClientConnectionOperator.connect(HttpClientConnectionOperator.java:115) 
    at org.apache.http.impl.conn.BasicHttpClientConnectionManager.connect(BasicHttpClientConnectionManager.java:318) 
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:360) 
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:219) 
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:177) 
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:77) 
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:95) 
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
    at microsoft.exchange.webservices.data.HttpClientWebRequest.executeRequest(HttpClientWebRequest.java:279) 
    at microsoft.exchange.webservices.data.ServiceRequestBase.getEwsHttpWebResponse(ServiceRequestBase.java:700) 
    ... 31 more 
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.validator.PKIXValidator.doBuild(Unknown Source) 
    at sun.security.validator.PKIXValidator.engineValidate(Unknown Source) 
    at sun.security.validator.Validator.validate(Unknown Source) 
    at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source) 
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source) 
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source) 
    at microsoft.exchange.webservices.data.EwsX509TrustManager.checkServerTrusted(EwsX509TrustManager.java:81) 
    at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(Unknown Source) 
    ... 51 more 
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source) 
    at java.security.cert.CertPathBuilder.build(Unknown Source) 
    ... 59 more 
+0

您可能会发现[EWS托管API,EWS和Web服务在Exchange(https://msdn.microsoft.com/en-us/library/office/dd877012(V = exchg。 150).aspx)文章有帮助。 – 2015-02-18 08:05:19

+0

它并没有说任何证书......... – user3660050 2015-02-18 09:22:42

解决我的概率。我在网,接下来的教程发现:

它很好地解释,

http://www.dekho.com.au/help/32/default.htm?turl=Documents%2Faddingacertificateintothejavacertificatestore.htm

这是视频啧啧。在youtube上找到,解释如何安装证书以及如何将其添加到密钥库,甚至是用于ColdFusion,我认为它很有用。

https://www.youtube.com/watch?v=ewT4aud-xww

需要将您的域的证书(这可能不是一个公共CA签名?)添加到信任存储为您的应用实例。请参阅:

Error while sending mails using EWSJavaAPI