【问题标题】:EWS Java 1.2 - Unable to connect to company Exchange ServerEWS Java 1.2 - 无法连接到公司 Exchange Server
【发布时间】:2014-07-12 01:28:40
【问题描述】:

我目前正在尝试使用 EWS Java API 连接到我们公司的 Exchange 服务器。 不幸的是,当尝试执行任何操作(自动发现或手动使用 setUrl 后的其他操作)时,我收到以下错误:

Apr 17, 2013 7:57:10 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
Apr 17, 2013 7:57:10 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
Apr 17, 2013 7:57:11 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
Apr 17, 2013 7:57:11 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
Apr 17, 2013 7:57:12 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
Apr 17, 2013 7:57:12 AM org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
Exception in thread "main" microsoft.exchange.webservices.data.ServiceRequestException: The request failed. Connection refused: connect
    at microsoft.exchange.webservices.data.ServiceRequestBase.getEwsHttpWebResponse(Unknown Source)
    at microsoft.exchange.webservices.data.ServiceRequestBase.validateAndEmitRequest(Unknown Source)
    at microsoft.exchange.webservices.data.SimpleServiceRequestBase.internalExecute(Unknown Source)
    at microsoft.exchange.webservices.data.MultiResponseServiceRequest.execute(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.bindToFolder(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.bindToFolder(Unknown Source)
    at microsoft.exchange.webservices.data.CalendarFolder.bind(Unknown Source)
    at microsoft.exchange.webservices.data.CalendarFolder.bind(Unknown Source)
    at er.dream.tgif.outlook.OutlookTest.findAppointments(OutlookTest.java:59)
    at er.dream.tgif.outlook.OutlookTest.main(OutlookTest.java:45)
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:75)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)
    at java.net.Socket.connect(Socket.java:579)
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:618)
    at microsoft.exchange.webservices.data.EwsSSLProtocolSocketFactory.createSocket(Unknown Source)
    at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)
    at org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnectionAdapter.open(MultiThreadedHttpConnectionManager.java:1361)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:387)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:171)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:397)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
    at microsoft.exchange.webservices.data.HttpClientWebRequest.executeRequest(Unknown Source)
    ... 10 more

我尝试使用我的凭据登录到 Exchange 服务器 Web 界面,这一切正常。假设它可能与 SSL 问题有关,我还尝试实现一个虚拟的 TrustManager 并将其设置为 HttpsUrlConnections 的默认值。

不幸的是,这没有帮助,错误仍然存​​在。

一个值得注意的事实:在我的 Outlook 中,我可以看到 Exchange 服务器被配置为使用代理服务器和特定的 SSL URL 来连接它。 (代理身份验证设置为 NTLM) 我不太确定如何在我的编码中体现这一点。

这可能是导致异常的原因还是我在这里看到了不同的问题?

【问题讨论】:

    标签: java ssl exchange-server exchangewebservices ewsjavaapi


    【解决方案1】:

    Java EWS API 的发行说明提到:

    在 32 位 Windows 7 操作系统上运行时,如果应用程序生成以下错误: 错误:请求失败。无法获取响应码java.io.IOException:身份验证失败

    因此,如果您遇到这种情况,请参阅随 EWS java Api 提供的发行说明(和/或搜索此确切句子以找到它们)。

    请务必使用正确的 Web 服务端点和端口,因为您使用的套接字似乎已关闭(连接被拒绝)。应该是这样的:

    "https://YOURDOMAIN.com/EWS/Exchange.asmx"
    

    this other StackOverflow question 中提到的代码对我有用(Exchange 2010 + NTLM 身份验证方案)。

    【讨论】:

      猜你喜欢
      • 2018-12-18
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多