Hi

I recall we used the 1st option to control it and it was effective.

FYI, you do need to create a new policy, this is ok too:

HTTPClientPolicy policy = ((HTTPConduit) client.getConduit()).getClient();

Try additionally setting a chunkingThreshold property to some large value, though the 1st option should work.

What CXF and Java version do you use ?

Cheers, Sergey
On 24/09/15 04:30, Eduardo Perez wrote:
Hi ,i'm trying to send a Http Request  to a reverse proxy (nginx) , then the 
proxy responds with a HTTP error 411 ( length required).

I read CXF documentation that says that some older proxies have problems with 
Chunking.

I disable chunking using CXF but the header content-length is not present in my 
HTTP Request Header.

i tried two ways for solve this problem.


1) this way does not work


Client client = ClientProxy.getClient(port);

HTTPConduit http = (HTTPConduit) client.getConduit();

HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();

httpClientPolicy.setAllowChunking(false);

http.setClient(httpClientPolicy);


2) write a custom Interceptor


Public CustomInterceptor extends AbstractPhaseInterceptor<Message>{


     public CustomInterceptor(){

         super(Phase.WRITE);

     }


     @override

     public void handleMessage(Message message) throws Fault{


     Map<String,List<String>> 
headers=(Map<String,List<String>>)message.getContextualProperty(Message.PROTOCOL_HEADERS);


headers.put(HttpHeaderHelper.CONTENT_LENGTH,Arryas.asList(sizeOfMyMessageInBytes));


     }

}


with this code i set the Content-Length header in my HTTP Request message, but 
i can't determine the length of my message in bytes.  how can i solve it ?


Is there another way to solve this issue(HTTP Header content-Length)?


thanks in advance .

Eduardo.



--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Reply via email to