私は Apache CXF Web サービスに取り組んでいます (SOAP 経由で JAX-WS を使用)。サービス自体は非常に単純です。リクエストを受け取り、リクエストをデータベースに挿入し、挿入が成功したかどうかを返します。リクエストにいくつかの制約を適用するために、XML 検証に頼りたいと思います。
それで、私の質問です。サービスのクライアントに詳細な検証エラーを返すにはどうすればよいですか? エンドポイントを構成して、サーバー側で検証を有効にしました。
<jaxws:endpoint id="someEndpoint" implementor="#someImpl" address="/impl">
<jaxws:properties>
<!-- This entry should- ideally- enable JAXB validation
on the server-side of our web service. -->
<entry key="schema-validation-enabled" value="true" />
</jaxws:properties>
</jaxws:endpoint>
私は、サーバー上でインターセプター (BareInInterceptor など) を使用し、何らかの方法で SAXParseExceptions をキャッチしてそれらをラップし、クライアントに送信することを検討しました。このアプローチは少し複雑に思えますが、クライアントの XML が無効な場合は、何らかの方法でクライアントに行番号を与える必要があります。インターセプターを使用して例外を公開する必要がありますか?
私はこのテクノロジー スタックについてあまり経験がなく、Web サービスを始めたばかりです。皆さんからのアドバイスをいただければ幸いです。