如何解决使用 vaadin 在异步方法中调用 restController
当我想从线程中触发 RestController 时,我在触发它时遇到了一些问题。我正在尝试从我的线程向 RestController 发送请求,但是当我的 restTemplate 正在执行目标 URL 时,我没有收到来自控制器的任何响应。 RestController 甚至没有被执行。仅当我从 ui.access->rest.sendRequest()
发送请求时,它才能按预期工作,但无论如何我的应用程序都必须等待请求结束。
我正在使用 Vaadin 14。我创建了一个带有 run 方法的线程,如下所示:
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 控制器的代码仍然没有执行。
解决方法
当我用 WebClient 替换 RestTemplate 时,我让它按预期工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。