1

前提条件: CXF に基づくサービスは、XSD 制限に違反するデータ付きの要求/応答を受け取ります。

実際の動作: この場合、CXF は次のようなメッセージでエラーを返します。

cvc-maxLength-valid: 長さ = '28' の値 'string_length_violated_value' は、タイプ 'XSDStringTypeWithLengthRestriction' の maxLength '13' に関してファセット有効ではありません

目標: 無効なデータを含むフィールドの名前でコンシューマーにフォールトを返します。次のようなものです。

プロバイダーからの応答に無効なデータが含まれています。フィールド 'field_name' の値 'string_length_violated_value' は、maxLength '13' に関してファセット有効ではありません。

それが可能かどうか疑問に思っています。可能であれば、このフィールド名を決定する方法(どこから取得するか)ですか?

4

1 に答える 1

2

これが完全に機能するかどうかはわかりませんが、試してみてください:

JAXB ValidationEventHandler を作成し、それをエンドポイントに登録できます。

取得する ValidationEvent には、基本的な文字列 (上記参照) とその他の情報が含まれています。そこにブレークポイントを置き、イベントを掘り下げて、追加の有用な情報が利用可能かどうかを確認します。

于 2011-05-05T20:41:35.973 に答える