我正在用java开发一个应用程序,从exchange server(版本10)获取电子邮件附件,我有windows 7(32位)pc。我的代码编译成功,但在运行时出现错误,说-
May 20, 2013 5:58:46 PM org.apache.commons.httpclient.auth.AuthChallengeProcessor selectAuthScheme
INFO: NTLM authentication scheme selected
May 20, 2013 5:58:47 PM org.apache.commons.httpclient.HttpMethodDirector processWWWAuthChallenge
INFO: Failure authenticating with NTLM <any realm>@autodiscover.mydomain.com:443
我的密码是-
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
ExchangeCredentials credentials;
credentials = new WebCredentials("myuser", "mypwd","mydomain");
service.setCredentials(credentials);
service.autodiscoverUrl("user@domain.com");
如何解决此NTLM身份验证错误?
2条答案
按热度按时间wqlqzqxt1#
启用跟踪:
service.setTraceEnabled(true);
您确定您的Exchange版本是2010吗?请使用this指南进行检查也尝试删除
service.autodiscoverUrl("user@domain.com");
relj7zay2#
在我的例子中,这是一个不正确的授权首选项顺序。我只是通过编辑代码来更改它们。我使用的是EX_2007_SP3。
在
microsoft.exchange.webservices.data.HttpClientWebRequest:prepareConnection()
和prepareAsyncConnection()
方法中,我更改了auth首选项顺序从,
到,
而且它仍然在工作:)我看到一些开发人员也使用谈判。
希望这对你有帮助。