我正在调查一个非常奇怪的问题。我正在研究的项目使用Spring远程处理通过http调用方法。根据我到目前为止的收集,发生了以下情况:
由于我的客户端代码仅对Spring远程处理客户端执行一个请求,并且该客户端在收到第二次调用后继续运行,因此我只能得出结论,这发生在Spring远程处理客户端中。
客户端使用AbstractHttpInvokerRequestExecutor
进行实际的http调用,而客户端又使用SimpleHttpInvokerRequestExecutor
进行请求。但是,据我所知,它没有重试请求的机制。所以现在我很困。
谁能想到可能导致这种行为的原因? (我试图保持问题的整洁,但如有需要,我会提供更多详细信息。)
答案 0 :(得分:0)
只是给您一些指导的想法,不一定是解决方案。使用第三方Http客户端(不是Spring的一个)来查看它是否改变了行为。这可能有助于您查看是否是SimpleHttpInvokerRequestExecutor
重犯“罪名”或其他原因。这是一个非常简单的3d派对HttpClient:在MgntUtils中提供开源库(由我编写)。使用非常简单。看一下Javadoc。库本身以Maven artifacts和Git的形式提供(包括源代码和Javadoc)。总的来说,您的代码可能看起来像这样:
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);
}
}