Menu Close

第30章 汎用的な障害処理

概要

JAX-WS 仕様では、2 つの型の障害が定義されます。1 つ目は、汎用 JAX-WS ランタイム例外です。もう 1 つは、メッセージの処理中に発生するプロトコル固有の例外クラスです。

30.1. ランタイム障害

概要

JAX-WS API のほとんどは、汎用 javax.xml.ws.WebServiceException 例外をスローします。

WebServiceException をスローする API

表30.1「WebServiceException をスローする API」に、汎用 WebServiceException 例外をスローできる JAX-WS API の一部を一覧表示します。

表30.1 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 から割り当てられない。