The Autodiscover service couldn't be located

Mahmoud Saleh picture Mahmoud Saleh · Oct 8, 2012 · Viewed 7.2k times · Source

I am using EWS Java API 1.1 to access an Exchange 2010 account as follows:

ExchangeService service = new ExchangeService();
ExchangeCredentials credentials = new WebCredentials(email,
    password);
service.setCredentials(credentials);
service.autodiscoverUrl("[email protected]");
Folder inbox = Folder.bind(service, WellKnownFolderName.Inbox);
System.out.println("messages: " + inbox.getTotalCount());

I am getting the following exception:

08/10/2012 05:11:35 م org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
08/10/2012 05:11:35 م org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
08/10/2012 05:11:56 م org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
08/10/2012 05:11:56 م org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
08/10/2012 05:12:17 م org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
08/10/2012 05:12:17 م org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
microsoft.exchange.webservices.data.AutodiscoverLocalException: The Autodiscover service couldn't be located.
    at microsoft.exchange.webservices.data.AutodiscoverService.internalGetLegacyUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.AutodiscoverService.getLegacyUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.AutodiscoverService.internalGetLegacyUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.AutodiscoverService.getUserSettings(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.getAutodiscoverUrl(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.autodiscoverUrl(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.autodiscoverUrl(Unknown Source)
    at main.java.TestMail.main(TestMail.java:22)

Answer

Mahmoud Saleh picture Mahmoud Saleh · Oct 9, 2012

It works fine after removing the autodiscover:

service.autodiscoverUrl("[email protected]");

and setting it manually as follows:

service.setUrl(new java.net.URI(
                    "https://myhostname/EWS/Exchange.asmx"));