我想知道当通过 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;
Run Code Online (Sandbox Code Playgroud)
或者 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;
Run Code Online (Sandbox Code Playgroud)
我们收到一些警告,我们需要确定所有内容是否都已关闭。
WARN: RESTEASY004687: Closing a class org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient43Engine instance for you. Please close clients yourself.
Run Code Online (Sandbox Code Playgroud)
PS:建议 quarkus 团队在警告中向有问题的客户端显示:)
| 归档时间: |
|
| 查看次数: |
2707 次 |
| 最近记录: |