第 30 章 通用故障处理

摘要

JAX-WS 规范定义了两种类型的错误。一个是通用的 JAX-WS 运行时异常。另一个是消息处理过程中抛出的协议特定的异常。

30.1. 运行时故障

概述

大多数 JAX-WS API 会抛出通用 javax.xml.ws.WebServiceException 异常。

抛出 WebServiceException 的 API

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

表 30.1. Throw WebServiceException

API原因

Binding.setHandlerChain()

处理程序链配置中出现错误。

BindingProvider.getEndpointReference()

指定的类不是从 W3CEndpointReference 分配。

Dispatch.invoke()

Dispatch 实例的配置中有一个错误,或者在与服务通信时出现错误。

Dispatch.invokeAsync()

Dispatch 实例的配置中出现错误。

Dispatch.invokeOneWay()

Dispatch 实例的配置中有一个错误,或者在与服务通信时出现错误。

LogicalMessage.getPayload()

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

LogicalMessage.setPayload()

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

WebServiceContext.getEndpointReference()

指定的类不是从 W3CEndpointReference 分配。