Dynamics crm 当MS dynamics返回http/1.1500内部服务器错误时,如何检索http响应正文?

Dynamics crm 当MS dynamics返回http/1.1500内部服务器错误时,如何检索http响应正文?,dynamics-crm,olingo,Dynamics Crm,Olingo,我正在使用Olingo客户端连接到Microsoft Dynamics 365 V9.0,以更新帐户等实体 但是,Olingo客户端(最新版本4.4.0)会不时返回ODataServerErrorException,仅返回服务器状态,如“HTTP/1.1500内部服务器错误”。这并不能说明很多根本原因。我们需要的是http响应体返回的详细错误消息。 代码段和堆栈跟踪如下所示: try { ODataBatchResponse response = batchManager.get

我正在使用Olingo客户端连接到Microsoft Dynamics 365 V9.0,以更新帐户等实体

但是,Olingo客户端(最新版本4.4.0)会不时返回ODataServerErrorException,仅返回服务器状态,如“HTTP/1.1500内部服务器错误”。这并不能说明很多根本原因。我们需要的是http响应体返回的详细错误消息。 代码段和堆栈跟踪如下所示:

try {
        ODataBatchResponse response = batchManager.getAsyncResponse().get(2, TimeUnit.MINUTES)
        ...
} catch (Exception e) {
   log.error("error: "+ e.getMessage(), e)
}
堆栈跟踪:

13 Jul 2018 23:56:18,958 ERROR Thread-77378 exportimpl.MicrosoftDynamicsCrmExportJobImpl  - error:  java.util.concurrent.ExecutionException: org.apache.olingo.client.api.communication.ODataServerErrorException: HTTP/1.1 500 Internal Server Error
org.apache.olingo.client.api.http.HttpClientException: java.util.concurrent.ExecutionException: org.apache.olingo.client.api.communication.ODataServerErrorException: HTTP/1.1 500 Internal Server Error
    at org.apache.olingo.client.core.communication.request.AbstractODataStreamManager.getHttpResponse(AbstractODataStreamManager.java:128) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.batch.ODataBatchRequestImpl$BatchManagerImpl.getResponseInstance(ODataBatchRequestImpl.java:88) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.batch.AbstractBatchManager.getResponse(AbstractBatchManager.java:115) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.batch.AbstractBatchManager.getResponse(AbstractBatchManager.java:38) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.AbstractODataStreamManager$1.get(AbstractODataStreamManager.java:179) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.AbstractODataStreamManager$1.get(AbstractODataStreamManager.java:154) ~[odata-client-core-4.4.0.jar:?]
    at java_util_concurrent_Future$get$0.call(Unknown Source) ~[?:?]
...
    at sun.reflect.GeneratedMethodAccessor1189.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) [groovy-2.4.11.jar:2.4.11]
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) [groovy-2.4.11.jar:2.4.11]
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294) [groovy-2.4.11.jar:2.4.11]
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022) [groovy-2.4.11.jar:2.4.11]
    at groovy.lang.Closure.call(Closure.java:414) [groovy-2.4.11.jar:2.4.11]
    at groovy.lang.Closure.call(Closure.java:408) [groovy-2.4.11.jar:2.4.11]
    at groovy.lang.Closure.run(Closure.java:495) [groovy-2.4.11.jar:2.4.11]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_121]
Caused by: java.util.concurrent.ExecutionException: org.apache.olingo.client.api.communication.ODataServerErrorException: HTTP/1.1 500 Internal Server Error
    at java.util.concurrent.FutureTask.report(FutureTask.java:122) ~[?:1.8.0_121]
    at java.util.concurrent.FutureTask.get(FutureTask.java:206) ~[?:1.8.0_121]
    at org.apache.olingo.client.core.communication.request.AbstractODataStreamManager.getHttpResponse(AbstractODataStreamManager.java:125) ~[odata-client-core-4.4.0.jar:?]
    ... 57 more
Caused by: org.apache.olingo.client.api.communication.ODataServerErrorException: HTTP/1.1 500 Internal Server Error
    at org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:74) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:54) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:310) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.batch.ODataBatchRequestImpl.doExecute(ODataBatchRequestImpl.java:73) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.streamed.AbstractODataStreamedRequest.access$300(AbstractODataStreamedRequest.java:51) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.streamed.AbstractODataStreamedRequest$2.call(AbstractODataStreamedRequest.java:118) ~[odata-client-core-4.4.0.jar:?]
    at org.apache.olingo.client.core.communication.request.streamed.AbstractODataStreamedRequest$2.call(AbstractODataStreamedRequest.java:115) ~[odata-client-core-4.4.0.jar:?]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_121]
    ... 1 more

您正在使用Web Api端点吗?我想说您的安全令牌已过期,但这将是一个错误。既然是500,问题就在于动力学。如果您有请求正文和标题,您应该打开一个票证


您以前是否运行过v8.2?这有助于缩小问题的范围。

Thx Nick!打开httpclient日志记录后,捕获错误消息:{“消息”:“服务器正忙,请求未完成。请稍后重试。”,…}。问题是如何在运行时获取消息并将其呈现给调用方。