Search code examples
groovyrest-client

Groovy RestClient with many connections


Using Groovy RestClient I am getting the following exception:

    java.lang.IllegalStateException: Invalid use of BasicClientConnManager: connection still allocated.
Make sure to release the connection before allocating another one.

As I understand that one connection has not released, so I cannot make another one.

What are the possible solutions?

Make new RestClient for every call? Or maybe there is some pool?

Thanks!


Solution

  • By default the REST Client uses the BasicClientConnManager which only handles one connection at one time. In order to do concurrent connections, you need to use the AsyncHTTPBuilder:

    def httpClient = new AsyncHTTPBuilder(
            poolSize: 20,
            uri: 'https://www.mysite.com'
    )