0

JAVA で記述された既存の Web サービスを変更する必要があります。Web サービスは何らかの入力検証を行い、たとえば数値の入力が無効な場合、NumberFormatException をスローします。

これにより、ユーザーにエラー メッセージが表示されますが、これは正しいことです。しかし、log4j を使用しているため、例外はログ ファイルにエラーとして記録されます。これは望ましくありません。

私の質問は: 例外をスローせずに SoapFault を返すにはどうすればよいですか? これはユーザーにエラーを返すと思いますが、エラーをログファイルにエラーとして記録しません。これが不可能な場合。特定の例外をログに記録しないように log4j を構成するにはどうすればよいですか?

4

2 に答える 2

0

nullを返しても問題は解決しなかったため、カスタム例外を作成し、log4j.xmlでクラスを除外しました。

<category name="My.Company.DoNotLogException">
  <priority value="off" />
</category>        

これでユーザーは引き続きエラーを受け取りますが、エラーはログに表示されなくなります。

私を助けてくれてありがとう。

于 2012-11-16T13:11:53.430 に答える
0

数値の解析を try\catch ブロックでラップして、NumberFormatException をキャッチできます。他の場所には伝播されず、catch ブロックで SoapFault を返すだけです。

int value;
try{
    value = Integer.parseInt(valueString);
}
catch(NumberFormatException e){
    value = 0;
    return SoapFault;
}
于 2012-11-15T10:37:08.750 に答える