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 元素引用来自配置文件其他位置的命名 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>