12.3. 配置服务提供商
12.3.1. HTTP 服务提供商的机制 复制链接链接已复制到粘贴板!
HTTP 服务提供商端点可以指定多个 HTTP 连接属性,包括它将遵守实时请求、与缓存交互的方式,以及与消费者通信错误的方式。
服务提供商端点可使用两种机制进行配置:
12.3.2. 使用配置 复制链接链接已复制到粘贴板!
Namespace 复制链接链接已复制到粘贴板!
						用于配置 HTTP 供应商端点的元素在命名空间 http://cxf.apache.org/transports/http/configuration 中定义。它通常被引用使用前缀 http-conf。要使用 HTTP 配置元素,您必须将 例 12.9 “HTTP 供应商配置命名空间” 中显示的行添加到端点配置文件的 beans 元素中。另外,您必须将配置元素的命名空间添加到 xsi:schemaLocation 属性中。
					
例 12.9. HTTP 供应商配置命名空间
Undertow 运行时或 Netty 运行时 复制链接链接已复制到粘贴板!
						您可以使用 http-conf 命名空间中的元素来配置 Undertow 运行时或 Netty 运行时。
					
destination 元素 复制链接链接已复制到粘贴板!
						 您可以使用 http-conf:destination 元素及其子项配置 HTTP 服务提供商端点。http-conf:destination 元素使用单个属性,名称,用于指定与端点对应的 WSDL 端口 元素。name 属性的值采用 portQName'.http-destination' 形式。例 12.10 “http-conf:destination Element” 显示 http-conf:destination 元素,用于在端点目标命名空间时为 WSDL 片段 < port binding="widgetSOAPBinding" name="widgetSOAPPort > 指定的端点添加配置。
					
例 12.10. http-conf:destination Element
...
  <http-conf:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-destination">
    ...
  </http-conf:destination>
...
...
  <http-conf:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-destination">
    ...
  </http-conf:destination>
...
						http-conf:destination 元素具有多个指定配置信息的子元素。它们在 表 12.4 “用于配置 HTTP 服务提供商端点的元素” 中进行了描述。
					
| 元素 | 描述 | 
|---|---|
|   指定 HTTP 连接属性。请参阅 “server 元素”一节。  | |
|   指定配置上下文匹配策略以处理 HTTP 请求的参数。  | |
|   指定此目的地处理的 HTTP 请求的参数顺序是否已修复。  | 
server 元素 复制链接链接已复制到粘贴板!
						 http-conf:server 元素用于配置服务提供商端点的 HTTP 连接的属性。其属性(如 表 12.5 “HTTP 服务提供商配置属性” 所述)指定连接的属性。
					
| 属性 | 描述 | 
|---|---|
|   
										设置服务提供商在连接超时前尝试接收请求的时间长度(以毫秒为单位)。默认值为  
										  | |
|   
										指定在收到请求时出现错误时是否抛出异常。默认值为   | |
|   
										指定当遇到错误向消费者发送响应时是否抛出异常。默认值为   | |
|   
										指定服务提供商是否遵循在发送响应后保持打开的连接请求。默认值为   | |
|   指定在客户端请求中不再适合请求的资源时,应重定向客户端请求的 URL。在这种情况下,如果服务器响应的第一行中没有自动设置状态代码,状态代码设置为 302,状态描述设置为 Object Moved。该值用作 HTTP RedirectURL 属性的值。  | |
|   指定由链中涉及的缓存遵循的行为指令,这些指令由从服务提供商到消费者的响应组成。请参阅 第 12.3.4 节 “Service Provider Cache Control Directives”。  | |
|   设置响应中发送资源的 URL。  | |
|   指定响应中发送信息的介质类型。介质类型使用多用途互联网邮件扩展(MIME)类型来指定。该值用作 HTTP ContentType 位置的值。  | |
|   指定应用于服务提供商发送的信息的额外内容编码。内容编码标签由互联网分配号授权机构(IANA)规范。可能的内容编码值包括 zip、gzip、compress、deflate 和 identity。这个值被用作 HTTP ContentEncoding 属性的值。 内容编码的主要用途是允许使用某些编码机制(如 zip 或 gzip)压缩文档。Apache CXF 在内容编码时不执行验证。用户负责确保应用程序级别支持指定内容编码。  | |
|   
										指定发送响应的服务器类型。值采用   | 
Example 复制链接链接已复制到粘贴板!
例 12.11 “HTTP 服务提供商端点配置” 显示符合 keep-alive 请求并阻止所有通信错误的 HTTP 服务提供商端点配置。
例 12.11. HTTP 服务提供商端点配置
12.3.3. 使用 WSDL 复制链接链接已复制到粘贴板!
Namespace 复制链接链接已复制到粘贴板!
						用于配置 HTTP 提供程序端点的 WSDL 扩展元素在命名空间 http://cxf.apache.org/transports/http/configuration 中定义。它通常被引用使用前缀 http-conf。要使用 HTTP 配置元素,您必须将 例 12.12 “HTTP Provider WSDL 元素的命名空间” 中显示的行添加到端点的 WSDL 文档中的 定义 元素中。
					
例 12.12. HTTP Provider WSDL 元素的命名空间
<definitions ...
       xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
<definitions ...
       xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
Undertow 运行时或 Netty 运行时 复制链接链接已复制到粘贴板!
						您可以使用 http-conf 命名空间中的元素来配置 Undertow 运行时或 Netty 运行时。
					
server 元素 复制链接链接已复制到粘贴板!
						http-conf:server 元素用于在 WSDL 文档中指定 HTTP 服务提供商的连接属性。http-conf:server 元素是 WSDL 端口 元素的子级。它的属性与配置文件中使用的 server 元素相同。这些属性在 表 12.5 “HTTP 服务提供商配置属性” 中进行了描述。
					
Example 复制链接链接已复制到粘贴板!
例 12.13 “WSDL 配置 HTTP 服务提供商端点” 显示 WSDL 片段,该片段配置 HTTP 服务提供商端点,指定它不会与缓存交互。
例 12.13. WSDL 配置 HTTP 服务提供商端点
12.3.4. Service Provider Cache Control Directives 复制链接链接已复制到粘贴板!
						表 12.6 “http-conf:server Cache Control Directives” 列出 HTTP 服务提供商支持的缓存控制指令。
					
| 指令 | 行为 | 
|---|---|
|   no-cache  |   缓存不能在不首先重新评估该服务器的情况下,使用特定的响应来满足后续请求。如果使用这个值指定特定的响应标头字段,则限制仅适用于响应中的标头字段。如果没有指定响应标头字段,则限制适用于整个响应。  | 
|   public  |   任何缓存都可以存储响应。  | 
|   private  |   公共(共享)缓存无法存储响应,因为响应适用于单个用户。如果使用这个值指定特定的响应标头字段,则限制仅适用于响应中的标头字段。如果没有指定响应标头字段,则限制适用于整个响应。  | 
|   no-store  |   缓存不得存储响应的任何部分或调用它的请求的任何部分。  | 
|   no-transform  |   缓存不得修改服务器与客户端之间的响应中的介质类型或内容位置。  | 
|   must-revalidate  |   缓存必须重新验证与响应相关的过期条目,然后才能在后续响应中使用该条目。  | 
|   proxy-revalidate  |   执行与 must-revalidate 相同,但只能对共享缓存强制,并由私有非共享缓存忽略。使用这个指令时,还必须使用 public cache 指令。  | 
|   max-age  |   客户端可以接受其年龄不超过指定秒数的响应。  | 
|   s-max-age  |   执行与 max-age 相同,但只能对共享缓存强制,并由私有非共享缓存忽略。s-max-age 指定的年龄会覆盖由 max-age 指定的年龄。使用这个指令时,还必须使用 proxy-revalidate 指令。  | 
|   cache-extension  |   指定其他缓存指令的额外扩展。扩展可以是信息或行为。在标准指令的上下文中指定扩展指令,以便不了解扩展指令的应用程序可以遵循 standard 指令强制的行为。  |