Hi,
This is becuase AppacheHTTPClient will not allow to use the same connection
if the previous request is not yet consumed. For eg, as mentioned in the
Test (quoted below)
@Test
public void test1PostAndGet() {
MultivaluedHashMap<String, String> map = new MultivaluedHashMap<>();
map.add("name", "Penny");
map.add("age", "1");
target.request().post(Entity.form(map));
map.clear();
map.add("name", "Leonard");
map.add("age", "2");
target.request().post(Entity.form(map)); // <--- Reference [1]
map.clear();
map.add("name", "Sheldon");
map.add("age", "3");
target.request().post(Entity.form(map)); <--- Reference [2]
Person[] list = target.request().get(Person[].class);
assertEquals(3, list.length);
assertEquals("Penny", list[0].getName());
assertEquals(1, list[0].getAge());
assertEquals("Leonard", list[1].getName());
assertEquals(2, list[1].getAge());
assertEquals("Sheldon", list[2].getName());
assertEquals(3, list[2].getAge());
}
As you can see in *Reference[1]*, the request is made and its response
is not consumed. So the connection is still in active state. You
should consume the response or call connection.close() before making
the second request as mentioned in *Reference[2]*. This is because the
"target" object uses the same ApacheHttpClient connection manager
which internally uses "
SingleClientConnManager" as discussed in the documentation[3].
[3]
http://docs.jboss.org/resteasy/docs/3.0.5.Final/userguide/html_single/ind...
-Nibin
On Fri, Nov 8, 2013 at 5:31 AM, Arun Gupta <arun.gupta(a)gmail.com> wrote:
Tests for JAX-RS Client API sample at:
https://github.com/arun-gupta/javaee7-samples/tree/master/jaxrs/jaxrs-client
is failing with:
Caused by: java.lang.IllegalStateException: Invalid use of
BasicClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.
at
org.apache.http.impl.conn.BasicClientConnectionManager.getConnection(BasicClientConnectionManager.java:161)
at
org.apache.http.impl.conn.BasicClientConnectionManager$1.getConnection(BasicClientConnectionManager.java:138)
at
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:455)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)
at
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)
at
org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine.invoke(ApacheHttpClient4Engine.java:245)
... 33 more
The instructions to run the test are described at:
https://github.com/arun-gupta/javaee7-samples
Any suggestions ?
Arun
--
http://blog.arungupta.me
http://twitter.com/arungupta
_______________________________________________
wildfly-dev mailing list
wildfly-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/wildfly-dev