0

HTTP エンドポイントである関数と、Java プログラムの別の場所で呼び出す関数があります。

@RequestMapping(method = RequestMethod.GET)
public @ResponseBody MyObject getObject(final HttpServletRequest request, final HttpServletResponse response)

問題はエラー処理にあります。エラー時に欲しい機能:

  • Java 内部から呼び出された関数: 例外をスローします
  • HTTP から呼び出された関数: エラー json オブジェクトを返します

それを行うための最良の方法を見つけようとしています。Java.lang.Object を返すことだけを考えましたが、それは多くのキャストと型チェックです。

4

1 に答える 1

1

Web から呼び出すときに Spring 例外ハンドラーを追加し、ハンドラーが JSON を返すようにします。

より良いアプローチは、機能をサービス メソッドにリファクタリングすることです。そうすれば、HTTP 呼び出しで独自の方法で例外を処理し、内部呼び出しで必要に応じて処理することができます。

編集

2 番目のアプローチは、テストも少し簡単です。

于 2012-12-04T14:33:45.357 に答える