Red Hat Training

A Red Hat training course is available for Red Hat Fuse

49.5. 配置客户端端点

概述

可以通过注册和配置功能和提供程序来增加基础 javax.ws.rs.client.Client 对象的功能。

示例

以下示例显示了将客户端配置为具有日志记录功能、自定义实体供应商,并将 prettyLogging 属性设为 true

// Java
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Client;
import org.apache.cxf.feature.LoggingFeature;
...
Client client = ClientBuilder.newClient();
client.register(LoggingFeature.class)
      .register(MyCustomEntityProvider.class)
      .property("LoggingFeature.prettyLogging","true");

可配置 API 用于注册对象

Client 类支持将 Configurable API 用于注册对象,它提供了 寄存器 方法的多个变体。在大多数情况下,您将注册一个类或对象实例,如下例所示:

client.register(LoggingFeature.class)
client.register(new LoggingFeature())

有关 注册 变体的详情,请参阅 配置文档中的 参考文档

您可以在客户端上配置什么?

您可以配置客户端端点的以下方面:

  • 功能
  • 供应商
  • Properties
  • 过滤器
  • 拦截器

功能

javax.ws.rs.core.Feature 实际上是一个插件,该插件向 JAX-RS 客户端添加额外的功能。通常,一个功能会安装一个或多个拦截器,以提供所需功能。

供应商

提供程序是一种特定的客户端插件,可提供映射功能。JAX-RS 2.0 规范定义了以下类型的供应商:

实体供应商
实体供应商提供 在特定介质类型 Java 类型之间映射的功能。如需了解更多详细信息,请参阅 第 49.4 节 “解析请求和响应”
映射供应商例外
一个 例外映射供应商 将检查的运行时异常映射到 Response 实例。
上下文供应商
在服务器端使用上下文提供程序,为资源类别和其他服务提供商提供上下文。

过滤器

JAX-RS 2.0 过滤器是一个插件,可让您在消息处理管道的不同点(extension点)内访问 URI、标头和各种上下文数据。详情请查看 第 61 章 JAX-RS 2.0 Filters 和 Interceptors

拦截器

JAX-RS 2.0 拦截器是一个插件,它可让您访问请求或响应的消息正文。详情请查看 第 61 章 JAX-RS 2.0 Filters 和 Interceptors

Properties

通过在客户端上设置一个或多个属性,您可以自定义注册功能或注册提供程序的配置。

其他可配置类型

不可能,不仅配置 javax.ws.rs.client.Client (和 javax.ws.rs.client.client.ClientBuilder)对象,还是一个 WebTarget 对象。当您更改 WebTarget 对象的配置时,底层客户端配置会被深入复制,以提供新的 WebTarget 配置。因此,可以在不更改原始 Client 对象的配置的情况下更改 WebTarget 对象的配置。