使用 vaadin 在异步方法中调用 restController

Call restController in asynchronous method with vaadin

当我想从线程中触发 RestController 时,我遇到了一些问题。我正在尝试从我的线程向 RestController 发送请求,但是当我的 restTemplate 正在执行目标 URL 时,我没有从控制器收到任何响应。 RestController 甚至没有执行。仅当我从 ui.access->rest.sendRequest() 发送请求时它才按预期工作,但无论如何我的应用程序都必须等待请求结束。

我正在使用 Vaadin 14。我使用 运行 方法创建了一个线程,如下所示:

CompletableFuture<Long> nonBlocking = CompletableFuture.supplyAsync(() -> restTemp.getForObject("http://localhost:4240/Servis/api/address",
    Long.class));
nonBlocking.thenAccept(s -> {
    if (s != null) {
      ui.access(() -> Notification.open("long is not null"));
    } else {
      ui.access(() -> Notification.open("long is null"));
    }
});
nonBlocking.get();

但是我的来自rest controller的代码仍然没有执行。

当我用 WebClient 替换 RestTemplate 时,我让它按预期工作