3

私は小さな石鹸のウェブサービスを持っています。そして、どうすればエラーで対応できるのだろうか。

例えば:

public int createUser(String username) {
   //create...
   return id;
}

さて、ユーザーを作成できなかった場合、適切な応答をするにはどうすればよいですか?カスタム例外をスローする必要がありますか?どちらが正しい方法ですか?

4

3 に答える 3

1

ここでの正しいアプローチは、例外をSOAP障害に変換することです。

于 2012-08-09T22:53:30.450 に答える
0

私はSOAPサーバーでこれを行いますが、独自のSoapフォールトを作成しようとして騙されないでください。ランタイム例外をスローするだけで、Soapフォールトに変換されます。

于 2012-10-12T03:09:44.570 に答える
0

これに関する私の経験では、データクラスとともに返される共通クラスを作成しました。したがって、たとえば、soap応答はCommonOutオブジェクトとResultDataオブジェクトで返されます。CommonOutクラスには、Status、Records Returned、Messageなど、リクエストが良いか悪いかに関係なくデータが入力されるフィールドが含まれています。

インターセプターは、コンテナー内のすべての例外をキャッチし、それらをカスタム形式でラップしてユーザーに返すために使用されます。そうすれば、実際の例外メッセージをキャッチして、独自の形式でラップできます。

実際のエラーメッセージを呼び出し元に返すことの危険性は、例外をキャッチして返される値をオーバーライドしない限り、システムに関する詳細が公開される可能性があることです。

これは、上記のSOAP障害に似ていますが、出力形式をカスタマイズする機能が向上します。

于 2012-08-10T00:58:00.600 に答える