ServiceException、ConnectionException、InvalidDataException の 3 種類のカスタム Web サービス障害をスローする Web サービスを使用しています。
これらの catch ブロックに加えて、Spring のランタイム例外である RemoteAccessException の catch ブロックも入れました。
catch (org.springframework.remoting.RemoteAccessException remoteAccessExc) {
}
上記のカスタム例外をテストしているときに、これら 3 種類の例外すべてがそれぞれの catch ブロックでキャッチされていないことがわかりました。代わりに、RemoteAccessException である最後の catch ブロックですべてがキャッチされます。タイプ org.springframework.remoting.jaxws.JaxWsSoapFaultException の SOAP エラーの例外オブジェクトのデバッグ中に、サービスが正しいエラーをスローしていることがわかりました。
私の懸念は、これらの障害が独自の catch ブロックに分類されない理由です。サービス自体は、サービス呼び出しを行うときにこれらの例外を処理するように指示します。
プロキシ Java クライアントを介してサービスにヒットすると、障害はそれぞれのブロックに正しく分類されます。POJO に問題があった場合は、この場合も機能しないはずです。ただし、この場合 (Java プロキシ クライアントを介してヒットした場合) は機能しているため、POJO では問題ありません。
spring-2.5.6.jar を使用しています。