GenericObjectPoolConfig<Connection> poolConfig = new GenericObjectPoolConfig<>();
ObjectPool<Connection> connectionPool = new GenericObjectPool<>(new ConnectionFactory(), poolConfig);
Connection connection = connectionPool.borrowObject();
connectionPool.returnObject(connection);
InvocationHandler handler = new AsynchronousInvocationHandler(new MyService());
Invoker invoker = new HTTPInvoker(URI.create("http://example.com/service"));
Future<Result> future = invoker.invokeAsync("methodName", new Object[] { arg1, arg2 }, handler);
Result result = future.get();
<subsystem xmlns="urn:jboss:domain:remoting-jmx:1.0">
<executor name="default" core-threads="10" queue-length="1000" max-threads="50"/>
</subsystem>