quarkus - Quarkus RestClient 关闭()
问题描述
我想知道当通过 CDI 注入 RestClient 时 quarkus 的行为是什么。
在下面的示例中它会自动关闭客户端吗?
@Produces(APPLICATION_JSON)
@Consumes(APPLICATION_JSON)
@RegisterRestClient
@RegisterClientHeaders
public interface CarClient {
@GET
@Path("/cars/{id}")
@Timeout(4500L)
Car getCar(@PathParam("id") String id);
}
@Inject
@RestClient
CarClient carClient;
或者 Quarkus 要求它像下面的示例一样扩展 AutoCloseable?
@Produces(APPLICATION_JSON)
@Consumes(APPLICATION_JSON)
@RegisterRestClient
@RegisterClientHeaders
public interface CarClient extends AutoCloseable {
@GET
@Path("/cars/{id}")
@Timeout(4500L)
Car getCar(@PathParam("id") String id);
}
@Inject
@RestClient
CarClient carClient;
我们收到了一些警告,我们需要确定是否一切都已关闭。
WARN: RESTEASY004687: Closing a class org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient43Engine instance for you. Please close clients yourself.
PS:建议 quarkus 团队在有问题的客户警告中显示 :)
解决方案
Quarkus 团队表示需要在 RestClient 接口中扩展 AutoCloseable,以便自动关闭连接。
推荐阅读
- swift - 在 App.swift 文件中的哪里放置应用程序委托代码?
- c++ - 这是在 C++ 中检查数字是否为素数的最佳方法吗
- typescript - 如何从 ReaderEither
[] 到 ReaderEither 在 fp-ts 中? - html - 使用 CSS 的图像标签固定纵横比
- azure-data-explorer - Kusto:查询执行已超出允许的限制 (80DA0003):
- excel-formula - Excel INDIRECT 函数到另一个有引号的工作表
- excel - 根据范围从单元格中选择一个值
- c# - Unity中使用线渲染器时如何销毁线?
- assembly - 汇编语言代码未正确添加
- mysql - 有没有办法使用SQL通过分组和保持时间顺序来压缩数据?