コードは次のようである:私はカールしようとした-H "同意する:アプリケーション/ JSONを"exceptionHandlerのは、春のMVCで働いていないJSONやXMLを返す3
@Controller
public class TestController {
@RequestMapping(value = "/testerror", method = RequestMethod.GET)
public @ResponseBody ErrorTO testerror(HttpServletRequest request,HttpServletResponse response) {
throw new ABCException("serious error!");
}
@ExceptionHandler(ABCException.class)
public @ResponseBody ErrorTO handleException(ABCException ex,
HttpServletRequest request, HttpServletResponse response) {
response.setStatus(response.SC_BAD_REQUEST);
return new ErrorTO(ex.getMessage());
}
@RequestMapping(value = "/test", method = RequestMethod.GET)
public @ResponseBody ErrorTO test(HttpServletRequest request,
HttpServletResponse response) {
ErrorTO error = new ErrorTO();
error.setCode(-12345);
error.setMessage("this is a test error.");
return error;
}
}
-v「http://localhost.com: 8080/testerror " org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver - 戻り値の型[class com.kibboko.poprocks.appservices.dtos.ErrorTO]と[application]をサポートするHttpMessageConverterが見つかりませんでした/ json]
私はカールを試してみると、 "Accept:application/json" -v "http://localhost.com:8080/test"という返されたjson応答。 "application/xml"もうまくいきました。
例外ハンドラについて特別なことはありますか?jsonやxmlで動作するように注意してください。ありがとう!
のように思えます。よりシンプルなソリューションを見つけることは可能でしょうか?あなたは私に実例を教えてもらえますか? – Bobo
@Bobo:あなたの文脈でそのbeanを宣言しようとしましたか?それは正常に動作するはずです。 – axtavt
@axtavt:申し訳ありません私は春の土地で本当の初心者です。 「あなたのコンテキストでそのBeanを宣言する」とは、春の設定ファイルで宣言することですか? – Bobo