搜索

此内容没有您所选择的语言版本。

46.5. Configuring the Client Endpoint

download PDF

Overview

It is possible to augment the functionality of the base javax.ws.rs.client.Client object by registering and configuring features and providers.

Example

The following example shows a client configured to have a logging feature, a custom entity provider, and to set the prettyLogging property to 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");

Configurable API for registering objects

The Client class supports the Configurable API for registering objects, which provides several variants of the register method. In most cases, you would register either a class or an object instance, as shown in the following examples:
client.register(LoggingFeature.class)
client.register(new LoggingFeature())
For more details about the register variants, see the reference documentation for Configurable.

What can you configure on the client?

You can configure the following aspects of a client endpoint:
  • Features
  • Providers
  • Properties
  • Filters
  • Interceptors

Features

A javax.ws.rs.core.Feature is effectively a plug-in that adds an extra feature or functionality to a JAX-RS client. Often, a feature installs one or more interceptors in order to provide the required functionality.

Providers

A provider is a particular kind of client plug-in that provides a mapping capability. The JAX-RS 2.0 specification defines the following kinds of provider:
Entity providers
An entity provider provides the capability of mapping between a specific media type a Java type. For more details, see Section 46.4, “Parsing Requests and Responses”.
Exception mapping providers
An exception mapping provider maps a checked runtime exception to an instance of Response.
Context providers
A context provider is used on the server side, to supply context to resource classes and other service providers.

Filters

A JAX-RS 2.0 filter is a plug-in that gives you access to the URI, headers, and miscellaneous context data at various points (extension points) of the message processing pipeline. For details, see Chapter 58, JAX-RS 2.0 Filters and Interceptors.

Interceptors

A JAX-RS 2.0 interceptor is a plug-in that gives you access to the message body of a request or response as it is being read or written. For details, see Chapter 58, JAX-RS 2.0 Filters and Interceptors.

Properties

By setting one or more properties on the client, you can customize the configuration of a registered feature or a registered provider.

Other configurable types

It is possible, not only to configure a javax.ws.rs.client.Client (and javax.ws.rs.client.ClientBuilder) object, but also a WebTarget object. When you change the configuration of a WebTarget object, the underlying client configuration is deep copied to give the new WebTarget configuration. Hence, it is possible to change the configuration of the WebTarget object without changing the configuration of the original Client object.
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.