17.2. 配置 Consumer 端点

概述

JAX-WS 消费者端点使用 jaxws:client 元素进行配置。元素的属性提供了创建消费者所需的基本信息。

要将其他功能(如 WS-RM)添加到添加到 jaxws:client 元素的使用者。子元素也用于配置端点的日志记录行为,并将其他属性注入到端点的实施中。

基本配置属性

表 17.4 “用于配置 JAX-WS Consumer 的属性” 中描述的属性提供了配置 JAX-WS 消费者所需的基本信息。您只需要为您要配置的特定属性提供值。大多数属性都有可识别的默认值,或者它们依赖于端点合同提供的信息。

表 17.4. 用于配置 JAX-WS Consumer 的属性

属性描述

address

指定消费者发出请求的端点的 HTTP 地址。这个值覆盖合同中设定的值。

bindingId

指定消费者使用的消息绑定 ID。第 23 章 Apache CXF Binding ID 中提供了有效绑定 ID 列表。

总线

指定 Spring bean 配置总线管理端点的 ID。

endpointName

指定消费者发出请求的服务的 wsdl:port 元素的 name 属性的值。它被指定为 QName,格式为 ns:name,其中 nswsdl:port 元素的命名空间。

serviceName

指定消费者发出请求的服务的 wsdl:service 元素的 name 属性的值。它被指定为 QName,格式为 ns:name,其中 nswsdl:service 元素的命名空间。

username

指定用于简单用户名/密码身份验证的用户名。

password

指定用于简单用户名/密码验证的密码。

serviceClass

指定服务端点接口(SEI)的名称。

wsdlLocation

指定端点的 WSDL 合同的位置。WSDL 合同的位置相对于部署客户端的文件夹。

name

指定消费者发出请求的服务的 wsdl:port 元素的字符串指定。它被指定为 QName,格式为 {ns}localPart,其中 nswsdl:port 元素的命名空间,localPartwsdl:port 元素的 name 属性的值。

abstract

指定 bean 是否为抽象 bean。abstract Bean 充当拥塞 Bean 定义且没有实例化的父项。默认值为 false。将其设置为 true 指示 bean 工厂不会实例化 bean。

dependent-on

指定在端点实例化前端点要实例化的 Bean 列表。

createdFromAPI

指定使用了 Apache CXF API(如 Service.getPort() )创建的用户。

默认值为 false

将其设置为 true 执行以下操作:

  • 通过将 .jaxws-client 附加到其 id 来修改 bean 的内部名称
  • 使 bean 摘要

除了 表 17.4 “用于配置 JAX-WS Consumer 的属性” 中列出的属性,可能需要使用多个 xmlns:shortName 属性来声明 endpointNameserviceName 属性使用的命名空间。

添加功能

要为消费者添加功能或执行高级配置,您必须将子元素添加到配置中。

子元素允许您进行以下操作:

表 17.5 “配置消费者端点的元素” 描述可用于配置 JAX-WS 消费者的子元素。

表 17.5. 配置消费者端点的元素

元素描述

jaxws:binding

指定 bean 配置端点使用的消息绑定。使用 org.apache.cxf.binding.Binding factory 接口的实现来配置消息绑定。[a]

jaxws:dataBinding

指定实施端点使用的数据绑定的类。您使用嵌入式 bean 定义来指定此值。实施 JAXB 数据源的类是 org.apache.cxf.jaxb.JAXBDataBinding

jaxws:features

指定 Beans 列表,用于配置 Apache CXF 的高级功能。您可以提供 bean 引用列表或嵌入式 Bean 列表。

jaxws:handlers

指定用于处理消息的 JAX-WS Handler 实施列表。有关 JAX-WS Handler 实现的更多信息,请参阅 第 43 章 编写处理程序

jaxws:inInterceptors

指定进程入站响应的拦截器列表。更多信息请参阅 第 VII 部分 “开发 Apache CXF Interceptors”

jaxws:inFaultInterceptors

指定处理入站错误信息的拦截器列表。更多信息请参阅 第 VII 部分 “开发 Apache CXF Interceptors”

jaxws:outInterceptors

指定处理出站请求的拦截器列表。更多信息请参阅 第 VII 部分 “开发 Apache CXF Interceptors”

jaxws:outFaultInterceptors

指定处理出站错误信息的拦截器列表。更多信息请参阅 第 VII 部分 “开发 Apache CXF Interceptors”

jaxws:properties

指定传递给端点的属性映射。

jaxws:conduitSelector

指定一个 org.apache.cxf.endpoint.ConduitSelector 实现,供客户端使用。ConduitSelector 实施将覆盖用来选择用于处理出站请求的 Conduit 对象的默认进程。

[a] SOAP 绑定使用 soap: SOApBinding bean 进行配置。

示例

例 17.5 “简单消费者配置” 显示了简单的使用者配置。

例 17.5. 简单消费者配置

<beans ...
  xmlns:jaxws="http://cxf.apache.org/jaxws"
  ...
  schemaLocation="...
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
    ...">
  <jaxws:client id="bookClient"
                serviceClass="org.apache.cxf.demo.BookClientImpl"
                address="http://localhost:8080/books"/>
  ...
</beans>

在 JAX-WS 消费者上启用架构验证

要在 JAX-WS 使用者上启用架构验证,请在 jaxws:properties 子元素中设置 schema-validation-enabled 属性,例如:

<jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort"
    createdFromAPI="true">
    <jaxws:properties>
        <entry key="schema-validation-enabled" value="BOTH" />
    </jaxws:properties>
</jaxws:client>

有关 schema-validation-enabled 属性的允许值列表,请参阅 第 24.3.4.7 节 “架构验证类型值”