我想知道错误消息MSG_TYPE1_GENERATED和MSG_TYPE3_GENERATED(来自httpClient/NTLMScheme.State枚举)表示帮助调试我们遇到的问题。有人可以提供这些错误的文档吗?
我有一个服务器应用程序,它使用ews-java-api 2.0连接到配置了NTLM 身份验证的Exchange Server 2016 。 我已经配置了HttpClient版本4.5.2。服务器应用程序使用 Exchange 服务帐户从 Exchange 服务器检索房间和会议。房间和会议已成功检索,但在成功运行一段时间后,我在日志中看到以下错误:
ERROR org.apache.http.impl.auth.HttpAuthenticator - NTLM authentication error: Unexpected state: MSG_TYPE3_GENERATED
Run Code Online (Sandbox Code Playgroud)
此错误之后是一些从 Exchange Server 收到的 401 未经授权的错误,应用程序在重新启动之前永远不会从此 401 错误中恢复(这通常每天发生几次)。
Caused by: microsoft.exchange.webservices.data.core.exception.http.HttpErrorException: The remote server returned an error: (401)Unauthorized
at microsoft.exchange.webservices.data.core.request.ServiceRequestBase.getEwsHttpWebResponse(ServiceRequestBase.java:726)
at microsoft.exchange.webservices.data.core.request.ServiceRequestBase.validateAndEmitRequest(ServiceRequestBase.java:640)
... 34 more
Run Code Online (Sandbox Code Playgroud)
我不确定它是否与这个问题有关,但有时在MSG_TYPE3_GENERATED错误日志之后,我看到很多超时:
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at …Run Code Online (Sandbox Code Playgroud)