18.2. 配置 JAX-RS 客户端端点
18.2.1. 定义 JAX-RS 客户端端点
注入客户端代理
以 XML 语言(Blueprint XML 或 Spring XML)实例化客户端代理 Bean 的主要点是将其注入另一个 bean,然后使用客户端代理来调用 REST 服务。要在 XML 中创建客户端代理 bean,请使用 jaxrs:client
元素。
命名空间
JAX-RS 客户端端点使用与服务器端点 不同的 XML 命名空间来定义。下表显示了哪个 XML 语言使用哪个命名空间:
XML 语言 | 客户端端点的命名空间 |
---|---|
Blueprint | |
Spring |
基本客户端端点定义
以下示例演示了如何在 Blueprint XML 或 Spring XML 中创建客户端代理 bean:
<jaxrs:client id="restClient" address="http://localhost:8080/test/services/rest" serviceClass="org.apache.cxf.systest.jaxrs.BookStoreJaxrsJaxws"/>
您必须设置以下属性来定义基本客户端端点:
id
- 客户端代理的 bean ID 可用于将客户端代理注入 XML 配置中的其他 Bean。
address
- address 属性指定 REST 调用的基本 URL。
serviceClass
-
serviceClass
属性通过指定根资源类(由@Path
标注)来提供 REST 服务的描述。实际上,这是 服务器 类,但不直接由客户端使用。指定类仅用于其元数据(通过 Java 反映和 JAX-RS 注释),它们用于动态构建客户端代理。
指定标头
您可以使用 jaxrs:headers
子元素将 HTTP 标头添加到客户端代理的调用中,如下所示:
<jaxrs:client id="restClient" address="http://localhost:8080/test/services/rest" serviceClass="org.apache.cxf.systest.jaxrs.BookStoreJaxrsJaxws" inheritHeaders="true"> <jaxrs:headers> <entry key="Accept" value="text/xml"/> </jaxrs:headers> </jaxrs:client>
18.2.2. jaxrs:client 属性
属性
表 18.3 “JAX-RS 客户端端点属性” 描述 jaxrs:client
元素上可用的属性。
属性 | 描述 |
---|---|
| 指定消费者要发出请求的端点的 HTTP 地址。这个值会覆盖合同中设置的值。 |
| 指定消费者使用的消息绑定的 ID。第 23 章 Apache CXF 绑定 ID 中提供了有效绑定 ID 列表。 |
| 指定配置管理端点总线的 Spring bean 的 ID。 |
|
指定如果从这个代理创建了子资源代理,则为这个代理设置的标头是否会被继承。默认为 |
| 指定用于简单用户名/密码身份验证的用户名。 |
| 指定用于简单用户名/密码身份验证的密码。 |
|
将模型模式指定为 classpath 资源(例如,格式为 |
|
指定服务接口的名称或资源类(通过 |
|
在特殊情况下,为 JAX-RS 端点指定 service QName (使用格式 |
|
指定客户端代理是否为 thread-safe。默认为 |
|
用于选择非标准传输层(代替 HTTP)。特别是,您可以通过将此属性设置为 |
|
(仅限Spring) 指定是否 bean 是抽象 Bean。抽象 Bean 充当 concrete bean 定义的父项,且不会实例化。默认值为 |
| (仅限Spring) 指定端点在可实例化前所依赖的 Bean 列表。 |
18.2.3. jaxrs:client Child Elements
子元素
表 18.4 “JAX-RS 客户端端点 Child Elements” 描述 jaxrs:client
元素的子元素。
元素 | 描述 |
---|---|
| |
| 指定配置 Apache CXF 高级功能的 Bean 列表。您可以提供 bean 引用列表或嵌入式 Bean 列表。 |
| 未使用。 |
| 指定实施端点使用的数据绑定的类。这使用嵌入式 bean 定义来指定。如需了解更多详细信息,请参阅 “指定数据绑定”一节。 |
| 指定处理入站响应的拦截器列表。如需更多信息,请参阅 第 VII 部分 “开发 Apache CXF Interceptors”。 |
| 指定处理入站故障消息的拦截器列表。如需更多信息,请参阅 第 VII 部分 “开发 Apache CXF Interceptors”。 |
| 指定处理出站请求的拦截器列表。如需更多信息,请参阅 第 VII 部分 “开发 Apache CXF Interceptors”。 |
| 指定处理出站故障消息的拦截器列表。如需更多信息,请参阅 第 VII 部分 “开发 Apache CXF Interceptors”。 |
| 指定传递给端点的属性映射。 |
|
允许您将一个或多个自定义 JAX-RS 提供程序注册到此端点。此元素的子项是( |
|
包含对一个或多个 |
|
直接在此端点中定义资源模型(即, |
| 用于设置传出消息上的标头。详情请查看 “指定标头”一节。 |
|
指定用于验证 XML 消息内容的一个或多个 XML 模式。此元素可以包含一个或多个 |