当前位置: 首页 > 知识库问答 >
问题:

JAVAutil。同时发生的TimeoutException:状态200后为null OK?

公良阳波
2023-03-14

我目前正在开发一个Java11 Spring Boot应用程序。在一个完全的未来中,我向网络服务发射了一大堆REST请求。其中只有一个(似乎是随机的)会导致TimeoutExc0019,尽管它后面跟着一个成功的状态200 OK在日志中收到响应。以下(匿名)日志条目:

[Thread-6] INFO  n.d.b.a.b.i.RESTInterceptor - Request              : <url value>?code=abcd&begindatum=2018-10-01&einddatum=2018-10-02
[http-nio-8080-exec-1] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [/xxx] threw exception [Request processing failed; nested exception is java.util.concurrent.CompletionException: java.util.concurrent.TimeoutException] with root cause
java.util.concurrent.TimeoutException: null
    at java.base/java.util.concurrent.CompletableFuture$Timeout.run(CompletableFuture.java:2792)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
[Thread-6] DEBUG n.d.b.a.b.i.RESTInterceptor - Response statuscode  : 200 OK
[Thread-6] DEBUG n.d.b.a.b.i.RESTInterceptor - Response headers     : [X-Application-Context:"yyyy", Cache-Control:"no-cache, no-store, max-age=0, must-revalidate", Pragma:"no-cache", Expires:"0", Server:"CD", X-Powered-By:"Unknown", Content-Type:"application/json;charset=UTF-8", Date:"Tue, 06 Apr 2021 15:23:16 GMT", Connection:"close", X-Frame-Options:"SAMEORIGIN", X-XSS-Protection:"1;mode=block", X-Content-Type-Options:"nosniff"]
[Thread-6] INFO  n.d.b.a.b.i.RESTInterceptor - Response             : [{"begindatum":"1993-01-01","id":"aaaaa","vanInstellingserkenningId":"bbbbb","naarInstellingserkenningId":"ccccc","soort":"HIERARCHISCH","naarInstellingserkenning":{"id":"ddddd","type":"ERKENDE_ONDERWIJSINSTELLING","code":"abcd"},"vanInstellingserkenning":{"id":"kkkk","type":"BEVOEGD_GEZAG","code":"12345"}}]

有人有同样的经历吗?我看不出成功完成的请求和“失败”的请求有什么不同。

共有1个答案

古棋
2023-03-14

在对问题进行深入分析之后,我最终发现TimeoutException是从应用程序中其他地方的另一个未来处理中抛出的。我感到困惑的是,未来(异步任务,每个任务都在自己的线程中)的处理与日志文件中的情况不同。日志片段中显示的TimeoutException不会在显示的请求-响应交互中引发。很抱歉给你带来困惑,但是这个答案可能会对其他人有所帮助。

 类似资料:
  • 我在Lollipop上收到了奇怪的撞车报告。我的应用程序基本上是一个浏览器,所以它大量使用WebView,但我不知道问题发生在那里。不管怎样,崩溃报告没有提供太多有用的信息,它基本上是我下面粘贴的内容: 有人见过这个吗?知道是什么引起的吗? 编辑:我应该提到的是,这种情况发生在我已经使用了大约10个月的应用程序上,它一直只针对4.0设备。该漏洞仅在5.0设备上报告,上面的stacktrace是Pl

  • 调用此获取操作时: 会引发一个异常...我的全局exc处理程序被触发。 当我的自定义响应返回给客户端时,我的小提琴手总是说: 结果:200 我还可以更改<code>返回Ok(数据)to

  • 问题内容: 我正在使用Retrofit2和。 我使用的API的返回状态代码始终为200,对于成功和响应JSON字符串,JSON结构完全不同。由于状态码始终为200,因此始终调用onResponse()方法。因此,在错误情况下,我无法从JSON中提取错误消息。 解决方案1: 我用来获取响应String并手动使用Gson来解析响应。如何在不使用GSON或android中任何其他库的情况下使用改造获得S

  • 问题内容: 这真让我感到困惑。我收到来自Ajax的错误回调。但是,如果我从错误消息中获取res.responseText(返回正确,顺便说一句)并使用它,则它做对了。就像我收到了成功的回调一样。 数据设置如下: 和ajax调用是这样的: 错误消息是:发生错误:。 问题答案: 如果您的responseText不是正确的JSON,则会引发解析错误。无论是 确保你的反应是一个有效的JSON 或 删除。

  • 我在从网站获取数据时遇到问题(https://avito.ru)在本地MacBook Air上使用标准golang http库-禁止im获取状态403。从浏览器(使用禁用的JavaScript)打开该站点没有问题,使用标准Curl函数(Curl-v)获取数据也没有问题https://www.avito.ru/moscow)-一直处于状态200。 有一个Golang代码: 有两张照片: 有Curl-

  • 我使用Spring中的webClient从GraphQL WebService中获取数据。此代码位于一个泛型方法中,该方法将响应体解码为不同类型的对象。如果响应是预期的类型,则它运行良好。 现在我想处理来自WebService的错误。因此,我的问题与此非常相似:Spring Webflux:Webclient:Get body on error我发现建议使用onStatus,但我的问题是,即使re