43.10.2. Spring 配置

概述

将端点配置为使用处理程序链的最简单方法是在端点配置中定义链。这可以通过将 jaxwxs:handlers 子添加到配置端点的元素来实现。

重要

通过配置文件添加的处理程序链优先于编程配置的处理程序链。

流程

要配置端点来加载处理器链,您可以进行以下操作:

  1. 如果端点还没有配置元素,请添加它。

    有关配置 Apache CXF 端点的更多信息,请参阅 第 17 章 配置 JAX-WS 端点

  2. 添加 jaxws:handlers 子元素到端点的配置元素。
  3. 对于链中的每个处理程序,添加一个 bean 元素,指定实施该处理程序的类。

    如果您的处理器实施在多个位置中使用,您可以使用 ref 元素引用 bean 元素。

handlers 元素

jaxws:handlers 元素在端点配置中定义处理程序链。它可以显示为所有 JAX-WS 端点配置元素的子项。以下是:

  • jaxws:endpoint 配置一个服务提供程序。
  • jaxws:server 还配置服务提供商。
  • jaxws:client 配置服务使用者。

您可以通过以下两种方式之一将处理程序添加到处理程序链中:

  • 添加定义实施类的 bean 元素
  • 使用 ref 元素引用配置文件中其他位置的 named bean 元素

在配置中定义处理程序的顺序是它们的执行顺序。如果您混合了逻辑处理程序和协议处理程序,则可以修改顺序。运行时间会将它们排序为正确的顺序,同时保持配置中指定的基本顺序。

示例

例 43.17 “配置端点以在 Spring 中使用处理程序链” 显示加载处理程序链的服务提供商的配置。

例 43.17. 配置端点以在 Spring 中使用处理程序链

<beans ...
  xmlns:jaxws="http://cxf.apache.org/jaxws"
  ...
  schemaLocation="...
    http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
    ...">
  <jaxws:endpoint id="HandlerExample"
                  implementor="org.apache.cxf.example.DemoImpl"
                  address="http://localhost:8080/demo">
    <jaxws:handlers> <bean class="demo.handlers.common.LoggingHandler" /> <bean class="demo.handlers.common.AddHeaderHandler" /> </jaxws:handlers>
  </jaws:endpoint>
</beans>