如何为MicroProfile Rest Client选择RESTEasy客户端后端?
对于Jersey,它允许通过属性选择底层客户端传输连接器[1],示例如下:
Client client = ClientBuilder.newBuilder(). property( ClientProperties.CONNECTOR_PROVIDER, "some.package.to.XXXConnectorProvider" ). build();
该机制同样适用于MicroProfile Rest Client,可通过在RestClientBuilder中设置此属性实现,或通过实现RestClientBuilderListener或RestClientListener并将配置应用到RestClientBuilder,实现更灵活的配置[2][3]。
然而,RESTEasy文档指出,要选择JettyClientEngine、ReactorNettyClientHttpEngine、VertxClientHttpEngine等其他后端[4],不仅需要在类路径中添加org.jboss.resteasy:resteasy-client-jetty、org.jboss.resteasy:resteasy-client-reactor-netty或org.jboss.resteasy:resteasy-client-vertx等额外模块,还需按如下方式手动构建客户端:
ResteasyClient client = ((ResteasyClientBuilder)ClientBuilder.newBuilder()). clientEngine( new JettyClientEngine(new HttpClient()) ). build();
此外,文档未提供使用MicroProfile Rest Client时选择这些后端的相关指导[5]。
是否存在可通过属性或其他方式配置RESTEasy客户端以选择后端,且同时兼容标准Jakarta RESTful Web Services Client API与Eclipse MicroProfile Rest Client的方法?
[1] Jersey官方文档
[2] MicroProfile Rest Client 3.0规范(程序查找章节)
[3] MicroProfile Rest Client 3.0规范(提供者声明章节)
[4] RESTEasy 6.2.10.Final用户指南(传输层章节)
[5] RESTEasy 6.2.10.Final用户指南(MicroProfile Rest Client章节)
内容的提问来源于stack exchange,提问作者Charlee Chitsuk

