微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法建立与Exchange Web服务的连接 – Java API

我正在测试Microsoft Exchange Web服务Java API(版本1.2)以从服务器读取邮件.这是我的代码
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("foo@bar.com");
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);

不幸的是,此代码抛出以下错误

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)

我无法理解当前代码错误.你有任何线索,或至少一些测试尝试?

请注意,我的Java代码可以访问Web服务(https // my-server / exchange.asmx).

不确定它是否可以提供帮助,但我发现在日志显示的跟踪中:

<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>

编辑

我做了另一个测试.这一次,我使用认凭据 – 所以我自己的电子邮件帐户 – 使用service.setUseDefaultCredentials(true);而不是设置WebCredentials对象.连接仍然没有建立,但我得到另一个错误(我只采取了跟踪日志的有趣部分):

<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>

当然,我无法在Exchange服务器端访问或更改任何内容.有没有办法使身份验证成功?

解决方法

问题是由于使用的身份验证方案.认情况下,EWS使用NTLM,但我的Exchange服务器未配置为接受此类身份验证.我必须使用LDAP身份验证.

原文地址:https://www.jb51.cc/html/231387.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐