You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Vasilij Savin <Va...@sintagma.lt> on 2008/06/11 10:23:23 UTC
Using httpclient object: local vs object scope
Greetings,
I have been playing with HttpClient 4 lately. It is pretty nice piece of
software, but recently I run into problem I was not able to resolve.
Currently I am using HttpClient to provide communication between sistem I
am developing and some external one, which uses webservices with XML
responses.
After studying examples of HC - I decided to use DefaultHttpClient
httpclient = new DefaultHttpClient(); as field and reuse for consequent
requests to external system.
1st request works fine, but all the following requests fail with
exception:
org.apache.http.ProtocolException: Content-Length header already present
at org.apache.http.protocol.RequestContent.process(
RequestContent.java:70)
at org.apache.http.protocol.BasicHttpProcessor.process(
BasicHttpProcessor.java:290)
at org.apache.http.protocol.HttpRequestExecutor.preProcess(
HttpRequestExecutor.java:160)
at
org.apache.http.impl.client.DefaultClientRequestDirector.execute(
DefaultClientRequestDirector.java:356)
at org.apache.http.impl.client.AbstractHttpClient.execute(
AbstractHttpClient.java:501)
at org.apache.http.impl.client.AbstractHttpClient.execute(
AbstractHttpClient.java:456)
at org.apache.http.impl.client.AbstractHttpClient.execute(
AbstractHttpClient.java:422)
at
lt.sintagma.ss5.core.documentImporter.AvilysAccessor.sendRequest(
AvilysAccessor.java:80)
at
lt.sintagma.ss5.core.documentImporter.AvilysAccessor.getDocumentList(
AvilysAccessor.java:151)
at lt.sintagma.ss5.core.AvilysIntegrationTest.testGetDocument(
AvilysIntegrationTest.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.junit.internal.runners.TestMethodRunner.executeMethodBody(
TestMethodRunner.java:99)
at org.junit.internal.runners.TestMethodRunner.runUnprotected(
TestMethodRunner.java:81)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestMethodRunner.runMethod(
TestMethodRunner.java:75)
at org.junit.internal.runners.TestMethodRunner.run(
TestMethodRunner.java:45)
at
org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(
TestClassMethodsRunner.java:66)
at org.junit.internal.runners.TestClassMethodsRunner.run(
TestClassMethodsRunner.java:35)
at org.junit.internal.runners.TestClassRunner$1.runUnprotected(
TestClassRunner.java:42)
at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
BeforeAndAfterRunner.java:34)
at org.junit.internal.runners.TestClassRunner.run(
TestClassRunner.java:52)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(
JUnit4TestReference.java:38)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(
TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
RemoteTestRunner.java:460)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
RemoteTestRunner.java:196)
However, if I make httpclient as local variable - it works totally fine.
Can someone explain, what am I doing wrong in the first place. I have a
feeling that something is not cleared after the first request. But I can
not figure out what specifically.
Vasilij Savin
Programuotojas / Programmer
Dokumentų ir procesų valdymo projektų skyrius
UAB "Sintagma"
Kalvarijų 125, LT-08221 Vilnius
vasilij.savin@sintagma.lt
www.sintagma.lt
Re: Using httpclient object: local vs object scope
Posted by Oleg Kalnichevski <ol...@apache.org>.
On Wed, 2008-06-11 at 11:23 +0300, Vasilij Savin wrote:
> Greetings,
>
> I have been playing with HttpClient 4 lately. It is pretty nice piece of
> software, but recently I run into problem I was not able to resolve.
>
> Currently I am using HttpClient to provide communication between sistem I
> am developing and some external one, which uses webservices with XML
> responses.
>
> After studying examples of HC - I decided to use DefaultHttpClient
> httpclient = new DefaultHttpClient(); as field and reuse for consequent
> requests to external system.
>
> 1st request works fine, but all the following requests fail with
> exception:
>
> org.apache.http.ProtocolException: Content-Length header already present
> at org.apache.http.protocol.RequestContent.process(
> RequestContent.java:70)
> at org.apache.http.protocol.BasicHttpProcessor.process(
> BasicHttpProcessor.java:290)
> at org.apache.http.protocol.HttpRequestExecutor.preProcess(
> HttpRequestExecutor.java:160)
> at
> org.apache.http.impl.client.DefaultClientRequestDirector.execute(
> DefaultClientRequestDirector.java:356)
> at org.apache.http.impl.client.AbstractHttpClient.execute(
> AbstractHttpClient.java:501)
> at org.apache.http.impl.client.AbstractHttpClient.execute(
> AbstractHttpClient.java:456)
> at org.apache.http.impl.client.AbstractHttpClient.execute(
> AbstractHttpClient.java:422)
> at
> lt.sintagma.ss5.core.documentImporter.AvilysAccessor.sendRequest(
> AvilysAccessor.java:80)
> at
> lt.sintagma.ss5.core.documentImporter.AvilysAccessor.getDocumentList(
> AvilysAccessor.java:151)
> at lt.sintagma.ss5.core.AvilysIntegrationTest.testGetDocument(
> AvilysIntegrationTest.java:109)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(
> NativeMethodAccessorImpl.java:39)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(
> DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.junit.internal.runners.TestMethodRunner.executeMethodBody(
> TestMethodRunner.java:99)
> at org.junit.internal.runners.TestMethodRunner.runUnprotected(
> TestMethodRunner.java:81)
> at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
> BeforeAndAfterRunner.java:34)
> at org.junit.internal.runners.TestMethodRunner.runMethod(
> TestMethodRunner.java:75)
> at org.junit.internal.runners.TestMethodRunner.run(
> TestMethodRunner.java:45)
> at
> org.junit.internal.runners.TestClassMethodsRunner.invokeTestMethod(
> TestClassMethodsRunner.java:66)
> at org.junit.internal.runners.TestClassMethodsRunner.run(
> TestClassMethodsRunner.java:35)
> at org.junit.internal.runners.TestClassRunner$1.runUnprotected(
> TestClassRunner.java:42)
> at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(
> BeforeAndAfterRunner.java:34)
> at org.junit.internal.runners.TestClassRunner.run(
> TestClassRunner.java:52)
> at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(
> JUnit4TestReference.java:38)
> at org.eclipse.jdt.internal.junit.runner.TestExecution.run(
> TestExecution.java:38)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
> RemoteTestRunner.java:460)
> at
> org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(
> RemoteTestRunner.java:673)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(
> RemoteTestRunner.java:386)
> at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(
> RemoteTestRunner.java:196)
>
> However, if I make httpclient as local variable - it works totally fine.
> Can someone explain, what am I doing wrong in the first place. I have a
> feeling that something is not cleared after the first request. But I can
> not figure out what specifically.
>
Vasilij,
Which version of HttpClient are you using? Please consider upgrading the
the latest SVN snapshot as there has been a number of important bug
fixes since the latest official release (4.0-alpha4).
Oleg
> Vasilij Savin
> Programuotojas / Programmer
> Dokumentų ir procesų valdymo projektų skyrius
>
> UAB "Sintagma"
> Kalvarijų 125, LT-08221 Vilnius
> vasilij.savin@sintagma.lt
> www.sintagma.lt
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscribe@hc.apache.org
For additional commands, e-mail: httpclient-users-help@hc.apache.org