Thứ Năm, 24 tháng 10, 2013

Patch for nginx to allow case-insensitive http method

Vấn đề gặp phải: Nginx phân biệt hoa thường với các http method. Chỉ chấp nhận dạng upper case GET, POST, HEAD... dẫn tới có trường hợp bị lỗi 400 bad request (cụ thể là gặp với ứng dụng Iphone, truyền lên method là "get")

 Cách fix: sửa file src/http/ngx_http_parse.c. Bổ sung dòng in đậm (line 150)
            if (ch == CR || ch == LF) {
                break;
            }


        int i;
            for (i = 0; isalpha(p[i]); i++){
                p[i] = toupper(p[i]);
                ch = *p;
        }   

            if ((ch < 'A' || ch > 'Z') && ch != '_') {
                return NGX_HTTP_PARSE_INVALID_METHOD;
            }


Source:https://gist.github.com/yatt/1908067
Lưu ý: code từ nguồn bị sai phần {}, phải sửa lại 1 chút mới chạy được

Thứ Tư, 23 tháng 10, 2013

Kiem soat timeout JXWS RI

MyWebService service = new MyWebService();
MyWebServicePortType client = service.MyWebServicePort();
 
Client cl = ClientProxy.getClient(client);
 
HTTPConduit http = (HTTPConduit) cl.getConduit();
 
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(0);
httpClientPolicy.setReceiveTimeout(0);
 
http.setClient(httpClientPolicy);
 
client.doSomething(...);