18.2. 配置 JAX-RS 客户端端点
18.2.1. 定义 JAX-RS 客户端端点
注入客户端代理
在 XML 语言(Blueprint XML 或 Spring XML)中实例化客户端代理的主要点是用来将它注入到另一个 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>