1

WSO2 ESB プロキシを使用してメッセージを読み取る場合、特定のデータ型を定義する必要があり、これにより特定の MessageBuilder (axis2.xml で定義) が適用されます。

しかし、MessageBuilder が失敗すると (つまり、XMLBuilder でテキスト ファイルを読み込もうとすると)、コンソールに例外が表示されますが、"faultSequence" は呼び出されません。ただし、読み取りの問題が発生した場合に備えて、特定のエラー処理を行う必要があります。

プロキシでトランスポート層 (MessageBuilder) から例外をキャッチするにはどうすればよいですか?

4

2 に答える 2

1

私が理解している限り、あなたの要件は、トランスポートレイヤーでエラーをキャッチし、それをアプリケーションレベル(つまり、メディエーションレベル)で処理することです。これは上のレイヤーを意味します。

しかし、それはメッセージング フレームワークのレイヤード アーキテクチャに違反していると思います。Message Builder 自体で例外をキャッチし、Axis Fault をスローして、基礎となるシナプス トランスポート レイヤー (この場合は Axis2) がそのエラーを処理するようにする必要があります。(クライアントにエラーが送信されます。)

TCP プロトコル スタックを見ると、これが一般的に使用されている方法です。

本当にこのエラーをメディエーション レベルでフィルタリングしたい場合。Message Builder でそのエラーをキャッチし、メッセージ コンテキスト プロパティまたはカスタム メッセージを追加して、それを成功メッセージとして渡します。メディエーション レベルでフィルタを実行し、処理します。

しかし、それはまた醜いです。:)

--チャリス

于 2012-11-22T16:06:01.430 に答える
-1

構成で onError 属性を定義しましたか?

 <sequence name="main" onError="myFaultSequence">

詳細については、このサンプルを参照してください。

于 2012-11-19T10:14:56.747 に答える