第 30 章 通用故障处理

摘要

JAX-WS 规范定义两种类型的故障。个是通用的 JAX-WS 运行时异常。另一个是消息处理过程中引发的协议特定例外类别。

30.1. 运行时故障

概述

大部分 JAX-WS API 引发通用 javax.xml.ws.WebServiceException 异常。

引发 WebServiceException 的 API

表 30.1 “Throw WebServiceException 的 API” 列出一些可以引发通用 WebServiceException 异常的 JAX-WS API。

表 30.1. Throw WebServiceException 的 API

API原因

Binding.setHandlerChain()

处理程序链配置中存在错误。

BindingProvider.getEndpointReference()

指定的类不会从 W3CEndpointReference 分配。

Dispatch.invoke()

Dispatch 实例的配置中存在错误,或者在与服务通信时发生错误。

Dispatch.invokeAsync()

Dispatch 实例配置中存在错误。

Dispatch.invokeOneWay()

Dispatch 实例的配置中存在错误,或者在与服务通信时发生错误。

LogicalMessage.getPayload()

当使用提供的 JAXBContext 来取消汇总有效负载时会出现一个错误。WebServiceException 的 cause 字段包含原始 JAXBException。

LogicalMessage.setPayload()

设置消息有效负载时会出现错误。如果使用 JAXBContext 时抛出异常,WebServiceException 的 cause 字段包含原始 JAXBException。

WebServiceContext.getEndpointReference()

指定的类不会从 W3CEndpointReference 分配。