首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring-remoting SimpleHttpInvokerRequestExecutor重试请求时,它不应该

Spring-remoting SimpleHttpInvokerRequestExecutor重试请求时,它不应该
EN

Stack Overflow用户
提问于 2019-08-29 14:30:49
回答 1查看 81关注 0票数 0

我在调查一个很奇怪的问题。我正在处理的项目使用通过http调用方法。从我到目前为止所收集到的资料来看,发生了以下情况:

  1. 我的客户端代码执行对服务器的请求。
  2. 服务器开始处理请求,但速度很慢。
  3. 25-30秒后,一个新的请求传入服务器。
  4. 第二个请求完成后,客户端继续其处理。
  5. 一段时间后,第一个请求就完成了,但是客户机不再关心了。

由于我的客户端代码只对Spring客户端执行一个请求,并且在它接收到的第二次调用完成后客户端继续执行,所以我只能得出结论,这发生在Spring客户机的某个地方。

客户机使用AbstractHttpInvokerRequestExecutor进行实际的http-调用,而这反过来又使用SimpleHttpInvokerRequestExecutor进行请求。但是,据我所知,它没有重试请求的机制。所以现在我被困住了。

有人能想到是什么导致了这种行为吗?(我试着把问题弄清楚,但如果需要的话,我还有更多的细节。)

EN

回答 1

Stack Overflow用户

发布于 2019-08-29 14:58:29

只是给你一些方向的想法,而不一定是一个解决方案。使用第三方Http客户端(而不是Spring中的一个)查看它是否更改了行为。这可能会帮助你看看是否是SimpleHttpInvokerRequestExecutor“有罪”的重试或其他什么。这里有一个非常简单的3d派对HttpClient:在MgntUtils开源库中提供(由我编写)。使用起来很简单。看看Javadoc。库本身是以Maven伪像Git提供的(包括源代码和Javadoc)。总而言之,您的代码可能如下所示:

代码语言:javascript
复制
private static void testHttpClient() {
    HttpClient client = new HttpClient();
    client.setContentType("application/json");
    String content = null;
    try {
        content = client.sendHttpRequest("http://www.google.com/", HttpMethod.GET);
        //content holds the response. Do your logic here
    } catch (IOException e) {
        //Error Handling is here
        content = TextUtils.getStacktrace(e, false);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57712410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档