Веб-клиент Spring 5 с коннектором причала продолжает работать после завершения выполнения main - PullRequest
0 голосов
/ 26 мая 2020

Я пытаюсь протестировать rest api веб-клиентом Spring 5 с помощью коннектора причала. Я получаю данные из вызова api, но основная программа продолжает работать даже после завершения выполнения main. Как решить вопрос? Какая конфигурация необходима, чтобы коннектор Jetty останавливался после завершения выполнения main?

Мой код инициализации коннектора:

SslContextFactory.Client sslContextFactory = new SslContextFactory.Client();
HttpClient httpClient = new HttpClient();
httpClient.setIdleTimeout(DefaultIdleTimeout);
ClientHttpConnector clientConnector = new JettyClientHttpConnector(httpClient, jettyResourceFactory);
webClient = WebClient.builder().baseUrl(getBaseUrl()).clientConnector(clientConnector).build();

Использование веб-клиента в основном классе:

webClient.get().uri("/getUri").exchange().flatMap(response.bodyToMono(String.class)).subscribe(di -> {
                    System.out.println(di);
                }, error -> {
                    System.out.println(error.getStackTrace());
                }, () -> {
                    System.out.println("Execution complete");
                });

ниже в журнале:

13:39:11.225 [HttpClient@1165b38-scheduler-1] DEBUG org.eclipse.jetty.io.AbstractConnection - HttpConnectionOverHTTP@4eb423a5::DecryptedEndPoint@4345fb54{<hostname>/<targetIp>:443<->/<sourceIp>:65106,CLOSED,fill=-,flush=-,to=15016/15000} onFillInterestedFailed {}
13:39:11.225 [HttpClient@1165b38-scheduler-1] DEBUG org.eclipse.jetty.io.ManagedSelector - Wakeup ManagedSelector@75ed9710{STARTED} id=1 keys=0 selected=0 updates=0
13:39:11.226 [HttpClient@1165b38-24] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.WindowsSelectorImpl@3d003adb woken with none selected
13:39:11.226 [HttpClient@1165b38-scheduler-1] DEBUG org.eclipse.jetty.util.thread.QueuedThreadPool - queue org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@74c9b13c startThread=0
13:39:11.226 [HttpClient@1165b38-24] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.WindowsSelectorImpl@3d003adb woken up from select, 0/0/0 selected
13:39:11.226 [HttpClient@1165b38-scheduler-1] DEBUG org.eclipse.jetty.io.FillInterest - onClose FillInterest@52ac96eb{null}
13:39:11.226 [HttpClient@1165b38-21] DEBUG org.eclipse.jetty.util.thread.QueuedThreadPool - run org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@74c9b13c in QueuedThreadPool[HttpClient@1165b38]@45efc20d{STARTED,8<=8<=200,i=1,r=8,q=0}[ReservedThreadExecutor@4bef0fe3{s=2/8,p=0}]
13:39:11.226 [HttpClient@1165b38-scheduler-1] DEBUG org.eclipse.jetty.client.http.HttpConnectionOverHTTP - Closed HttpConnectionOverHTTP@4eb423a5::DecryptedEndPoint@4345fb54{<hostname>/<targetIp>:443<->/<sourceIp>:65106,CLOSED,fill=-,flush=-,to=15017/15000}
13:39:11.226 [HttpClient@1165b38-24] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.WindowsSelectorImpl@3d003adb processing 0 keys, 0 updates
13:39:11.226 [HttpClient@1165b38-24] DEBUG org.eclipse.jetty.io.ManagedSelector - updateable 0
13:39:11.226 [HttpClient@1165b38-24] DEBUG org.eclipse.jetty.io.ManagedSelector - updates 0
13:39:11.226 [HttpClient@1165b38-24] DEBUG org.eclipse.jetty.io.ManagedSelector - Selector sun.nio.ch.WindowsSelectorImpl@3d003adb waiting with 0 keys
13:39:11.226 [HttpClient@1165b38-21] DEBUG org.eclipse.jetty.io.ManagedSelector - Destroyed SocketChannelEndPoint@7a9db40c{<hostname>/<targetIp>:443<->/<sourceIp>:65106,CLOSED,fill=-,flush=-,to=0/15000}{io=0/0,kio=-1,kro=-1}->SslConnection@53046985{NEED_UNWRAP,eio=-1/-1,di=-1,fill=IDLE,flush=IDLE}~>DecryptedEndPoint@4345fb54{<hostname>/<targetIp>:443<->/<sourceIp>:65106,CLOSED,fill=-,flush=-,to=15017/15000}=>HttpConnectionOverHTTP@4eb423a5(l:/<sourceIp>:65106 <-> r:<hostname>/<targetIp>:443,closed=true)=>HttpChannelOverHTTP@7dafb76e(exchange=null)[send=HttpSenderOverHTTP@4491419(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@22805291{s=START}],recv=HttpReceiverOverHTTP@52385f05(rsp=IDLE,failure=null)[HttpParser{s=START,0 of -1}]]
13:39:11.227 [HttpClient@1165b38-21] DEBUG org.eclipse.jetty.io.AbstractConnection - onClose HttpConnectionOverHTTP@4eb423a5::DecryptedEndPoint@4345fb54{<hostname>/<targetIp>:443<->/<sourceIp>:65106,CLOSED,fill=-,flush=-,to=15018/15000}
13:39:11.227 [HttpClient@1165b38-21] DEBUG org.eclipse.jetty.io.AbstractConnection - onClose SslConnection@53046985::SocketChannelEndPoint@7a9db40c{<hostname>/<targetIp>:443<->/<sourceIp>:65106,CLOSED,fill=-,flush=-,to=0/15000}{io=0/0,kio=-1,kro=-1}->SslConnection@53046985{NEED_UNWRAP,eio=-1/-1,di=-1,fill=IDLE,flush=IDLE}~>DecryptedEndPoint@4345fb54{<hostname>/<targetIp>:443<->/<sourceIp>:65106,CLOSED,fill=-,flush=-,to=15018/15000}=>HttpConnectionOverHTTP@4eb423a5(l:/<sourceIp>:65106 <-> r:<hostname>/<targetIp>:443,closed=true)=>HttpChannelOverHTTP@7dafb76e(exchange=null)[send=HttpSenderOverHTTP@4491419(req=QUEUED,snd=COMPLETED,failure=null)[HttpGenerator@22805291{s=START}],recv=HttpReceiverOverHTTP@52385f05(rsp=IDLE,failure=null)[HttpParser{s=START,0 of -1}]]
13:39:11.227 [HttpClient@1165b38-21] DEBUG org.eclipse.jetty.util.thread.QueuedThreadPool - ran org.eclipse.jetty.io.ManagedSelector$DestroyEndPoint@74c9b13c in QueuedThreadPool[HttpClient@1165b38]@45efc20d{STARTED,8<=8<=200,i=1,r=8,q=0}[ReservedThreadExecutor@4bef0fe3{s=2/8,p=0}]
and continue to get log in console & program continues to run..................................
...