Java Spring远程处理SimpleHttpInvokerRequestExecutor在请求不应';T
我正在调查一个相当奇怪的问题。我正在处理的项目使用SpringRemoting通过http调用方法。根据我目前收集的信息,发生了以下情况:Java Spring远程处理SimpleHttpInvokerRequestExecutor在请求不应';T,java,spring,http,spring-remoting,Java,Spring,Http,Spring Remoting,我正在调查一个相当奇怪的问题。我正在处理的项目使用SpringRemoting通过http调用方法。根据我目前收集的信息,发生了以下情况: 我的客户端代码执行对服务器的请求 服务器开始处理请求,但速度较慢 25-30秒后,服务器收到一个新请求 第二个请求完成后,客户端继续处理 一段时间后,第一个请求完成,但客户端不再关心 由于我的客户机代码只执行对SpringRemoting客户机的一个请求,并且客户机在它接收到的第二次调用完成后继续运行,因此我只能断定这发生在SpringRemoting客户机
AbstractHttpInvokerRequestExecutor
进行实际的http调用,而这反过来又使用SimpleHttpInvokerRequestExecutor
进行请求。但是,据我所知,这没有重试请求的机制。所以现在我被卡住了
有人能想到是什么导致这种行为吗?(我试图保持问题的清晰,但如果需要的话,我会提供更多细节。)只是一个给你一些方向的想法,不一定是一个解决方案。使用第三方Http客户机(不是Spring的客户机)查看它是否更改了行为。这可能有助于您了解是否是
SimpleHttpInvokerRequestExecutor
犯了“重审罪”或其他罪行。下面是一个非常简单的3d party HttpClient:由MgntUtils开放源代码库(由我编写)提供。使用非常简单。看一看。库本身作为和on提供(包括源代码和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);
}
}