58.3. 错误后卸载


概述

当执行拦截器链期间发生错误时,运行时会停止遍历拦截器链,并通过调用已执行的链中任何拦截器的 handleFault () 方法取消对链进行解放。

handleFault () 方法可用于清理正常消息处理期间被拦截器使用的任何资源。它还可用来回滚仅在消息处理成功完成时应该可以正常工作的任何操作。如果将错误消息传递到出站故障处理拦截器链,也可利用 handleFault () 方法向故障消息添加信息。

获取消息有效负载

handleFault () 方法收到与普通消息处理中使用的 handleMessage () 方法相同的 Message 对象。“获取消息内容”一节 中描述了从 Message 对象获取消息内容。

示例

例 58.5 “处理未发送拦截器链” 显示用于确保原始 XML 流在截屏链时重新放置到消息的代码。

例 58.5. 处理未发送拦截器链

@Override
public void handleFault(SoapMessage message)
{
  super.handleFault(message);
  XMLStreamWriter writer = (XMLStreamWriter)message.get(ORIGINAL_XML_WRITER);
  if (writer != null)
  {
    message.setContent(XMLStreamWriter.class, writer);
  }
}
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.