Nie można ustanowić połączenia z usługą Exchange Web Service - Java API

TestujęMicrosoft Java Web Service Java API (wersja 1.2) do odczytywania wiadomości e-mail z serwera. Oto mój kod:

String url = "https://my-server/EWS/exchange.asmx";
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.setTraceEnabled(true);
service.setCredentials(new WebCredentials("user", "password"));
service.setUrl(url.toURI());

Mailbox mailbox = new Mailbox("[email protected]");
FolderId folder = new FolderId(WellKnownFolderName.Inbox, mailbox);
ItemView view = new ItemView(10);
view.getOrderBy().add(ItemSchema.DateTimeReceived, SortDirection.Descending);
FindItemsResults<Item> items = service.findItems(folder, view);

Niestety ten kod powoduje następujący błąd:

Exception in thread "main" microsoft.exchange.webservices.data.EWSHttpException: Connection not established
    at microsoft.exchange.webservices.data.HttpClientWebRequest.throwIfConnIsNull(Unknown Source)
    at microsoft.exchange.webservices.data.HttpClientWebRequest.getResponseCode(Unknown Source)
    at microsoft.exchange.webservices.data.EwsUtilities.formatHttpResponseHeaders(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeServiceBase.traceHttpResponseHeaders(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeServiceBase.processHttpResponseHeaders(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.findItems(Unknown Source)
    at microsoft.exchange.webservices.data.ExchangeService.findItems(Unknown Source)
    at foo.bar.TestMail.main(TestMail.java:52)

Nie jestem w stanie zrozumieć, co jest nie tak z obecnym kodem. Czy masz jakąś wskazówkę lub przynajmniej niektóre testy, które możesz wypróbować?

Zauważ, że usługa internetowa (https//my-server/exchange.asmx) jest dostępny dla mojego kodu Java.

Nie jestem pewien, czy może to pomóc, ale znalazłem, że w śladach wyświetlanych przez dzienniki:

<Trace Tag="EwsResponse" Tid="1" Time="2013-01-28 10:47:03Z">
<html><head><title>Error</title></head><body>The function requested is not supported
</body></html>
</Trace>

EDYTOWAĆ

Zrobiłem kolejny test. Tym razem używam poświadczeń domyślnych - a więc mojego własnego konta e-mail - używającservice.setUseDefaultCredentials(true); zamiast ustawianiaWebCredentials obiekt. Połączenie nadal nie jest ustanowione, ale otrzymuję inny błąd (wziąłem tylko interesującą część dziennika śledzenia):

<h1>You are not authorized to view this page</h1>
You do not have permission to view this directory or page using the credentials that you supplied because your Web browser is sending a WWW-Authenticate header field that the Web server is not configured to accept.
(...)
<h2>HTTP Error 401.2 - Unauthorized: Access is denied due to server configuration.<br>Internet Information Services (IIS)</h2>

Oczywiście nie mogę uzyskać dostępu ani zmieniać niczego po stronie serwera Exchange. Czy istnieje sposób na udane uwierzytelnienie?

questionAnswers(3)

yourAnswerToTheQuestion