相关疑难解决方法(0)

Apache HttpClient临时错误:NoHttpResponseException

我有一个web服务,它接受一个带有XML的POST方法.它工作正常,然后在一些随机的场合,它无法与服务器通信抛出IOException与消息The target server failed to respond.后续调用工作正常.

它主要发生在我打电话然后让我的应用程序闲置10-15分钟时.我之后的第一个调用会返回此错误.

我尝试了几件事......

我设置重试处理程序就像

HttpRequestRetryHandler retryHandler = new HttpRequestRetryHandler() {

            public boolean retryRequest(IOException e, int retryCount, HttpContext httpCtx) {
                if (retryCount >= 3){
                    Logger.warn(CALLER, "Maximum tries reached, exception would be thrown to outer block");
                    return false;
                }
                if (e instanceof org.apache.http.NoHttpResponseException){
                    Logger.warn(CALLER, "No response from server on "+retryCount+" call");
                    return true;
                }
                return false;
            }
        };

        httpPost.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, retryHandler);
Run Code Online (Sandbox Code Playgroud)

但这次重试从未被召唤过.(是的,我正在使用right instanceof子句).虽然调试这个类永远不会被调用.

我甚至尝试过设置HttpProtocolParams.setUseExpectContinue(httpClient.getParams(), false);但没有用.有人可以建议我现在能做什么吗?

重要 除了弄清楚为什么我得到例外之外,我所关注的一个重要问题是为什么重试操作员不在这里工作?

java httpclient

66
推荐指数
6
解决办法
10万
查看次数

NGINX + uWSGI连接由Peer重置

我正在尝试使用uWSGI在NGINX上托管Bottle Application.

这是我的nginx.conf

location /myapp/ {
        include uwsgi_params;
        uwsgi_param X-Real-IP $remote_addr;
        uwsgi_param Host $http_host;
        uwsgi_param UWSGI_SCRIPT myapp;
        uwsgi_pass 127.0.0.1:8080;
    }
Run Code Online (Sandbox Code Playgroud)

我正在运行uwsgi

uwsgi --enable-threads --socket :8080 --plugin python -- wsgi-file ./myApp/myapp.py
Run Code Online (Sandbox Code Playgroud)

我正在使用POST请求.对于使用dev Http Client的那个.当我发送请求时,这是无限的

http://localhost/myapp
Run Code Online (Sandbox Code Playgroud)

uWSGI服务器接收请求并打印

[pid: 4683|app: 0|req: 1/1] 127.0.0.1 () {50 vars in 806 bytes} [Thu Oct 25 12:29:36 2012] POST /myapp => generated 737 bytes in 11 msecs (HTTP/1.1 404) 2 headers in 87 bytes (1 switches on core 0)
Run Code Online (Sandbox Code Playgroud)

但在nginx错误日志中

2012/10/25 12:20:16 [error] 4364#0: *11 readv() …
Run Code Online (Sandbox Code Playgroud)

nginx bottle uwsgi

9
推荐指数
3
解决办法
1万
查看次数

如何在uWSGI中配置允许的GET参数字符数?

我用nginx + uWSGI运行Django.

刚刚从本地dev迁移到登台服务器,我发现我们制作的特定GET请求有一个很长的查询字符串.试图调试,似乎uWSGI不接受基于长度的查询字符串 - 我可以传递短字符串并且它可以工作,在一定长度内我开始得到502个错误的网关错误.

我在uWSGI网站上或通过谷歌搜索找不到任何相关信息.有谁知道可能是什么问题?

django nginx uwsgi

5
推荐指数
1
解决办法
2602
查看次数

标签 统计

nginx ×2

uwsgi ×2

bottle ×1

django ×1

httpclient ×1

java ×1