21.2. WS-RM 拦截器


概述

在 Apache CXF 中,WS-RM 功能实施为拦截器。Apache CXF 运行时使用拦截器来截获和处理正在发送和接收的原始消息。当传输收到消息时,它会创建一个消息对象,并通过拦截器链发送该消息。如果应用的拦截器链包含 WS-RM 拦截器,应用程序可以参与可靠的消息传递会话。WS-RM 拦截器处理消息块的集合和聚合。他们还处理所有确认和重新传输逻辑。

Apache CXF WS-RM 拦截器

Apache CXF WS-RM 实施由四个拦截器组成,该拦截器在 表 21.1 “Apache CXF WS-ReliableMessaging Interceptors” 所述。

表 21.1. Apache CXF WS-ReliableMessaging Interceptors
拦截器描述

org.apache.cxf.ws.rm.RMOutInterceptor

处理为外发消息提供可靠性保证的逻辑方面。

负责发送 CreateSequence 请求并等待其 CreateSequenceResponse 响应。

另外,还负责聚合序列 properties-ID 和消息编号(用于应用程序消息)。

org.apache.cxf.ws.rm.RMInInterceptor

负责截获和处理 RM 协议消息和 序列Acknowledgement 信息,这些消息受制于应用程序消息的支持。

org.apache.cxf.ws.rm.RMCaptureInInterceptor

缓存持久存储的传入消息。

org.apache.cxf.ws.rm.RMDeliveryInterceptor

确保向应用交付消息。

org.apache.cxf.ws.rm.soap.RMSoapInterceptor

负责将可靠性属性编码和解码为 SOAP 标头。

org.apache.cxf.ws.rm.RetransmissionInterceptor

负责为将来的重新发送创建应用程序消息副本。

启用 WS-RM

在拦截器链上存在 WS-RM 拦截器可确保在必要时会交换 WS-RM 协议消息。例如,当截获出站拦截器链上的第一条应用程序消息时,RMOutInterceptor 发送 CreateSequence 请求并等待处理原始应用程序消息,直到它收到 CreateSequenceResponse 响应。此外,WS-RM 拦截器将序列标头添加到应用程序消息中,并在目标一侧提取它们。不需要对应用程序代码进行任何更改,从而能够可靠交换消息。

有关如何启用 WS-RM 的更多信息,请参阅 第 21.3 节 “启用 WS-RM”

配置 WS-RM 属性

您可以通过配置控制对可靠交换的可靠交换的序列和其他方面的内容。例如,默认情况下,Apache CXF 会尝试最大化序列的生命周期,从而降低带外 WS-RM 协议消息产生的开销。要强制使用每个应用程序消息的独立序列,请配置 WS-RM 源序列终止策略(将最大序列长度设置为 1)。

有关配置 WS-RM 行为的更多信息,请参阅 第 21.5 节 “配置 WS-RM”

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.