저지를 사용하여 외부 세계에 Java REST 서비스를 제공하고 있습니다. JSON을 사용하는 몇 가지 기능을 제공하고 잭슨 프레임 워크를 저지와 함께 사용하여 POJO로 변환합니다.ExceptionMapper로 저지/잭슨 예외 문제가 발생했습니다.
잘못된 잭슨 형식이 서버로 전송되면 응답 (http 응답 내용)이 잭슨 특정 예외 설명입니다.
Unrecognized field "sursname" (Class XY), not marked as ignorable at [Source: [email protected]; line: 1, column: 49] (through reference chain: XY["sursname"])
그게 아주 좋아,하지만 난에 대한 내 자신의 응답 내용을 가지고 싶다 : 나는 속성 "성"과 POJO를 가지고 서버에 JSON 문자열에서 "sursname"를 보낼 경우, 내가 얻을 내 자신의 오류 코드 예입니다. 이미 모든 Throwables를 매핑해야하는 사용자 지정 ExceptionMapper을 작성했습니다.
@Provider
public class WebserviceExceptionMapper implements ExceptionMapper<Throwable> {
@Override
public Response toResponse(Exception e) {
e.printStackTrace();
return Response.status(400).entity("{\"errorcode\":\"CRITICAL_ERROR\"}").type(MediaType.APPLICATION_JSON).build();
}
}
내 webservice 메서드가 호출되기 전에 jackson 예외가 throw 된 것 같습니다. 그래서 매핑 할 기회가 없습니까?
누구나 아이디어가 있습니까? 큰 감사와 내 영어에 대한 미안;)
, 대부분 exceptionmappers을 언급, 그것에 대해 많은 스레드를 읽어 : 여기 내 web.xml의의를 무시 부분입니다. 마침내 당신이 답을 찾았습니다. 문제를 올바르게 설명하는 유일한 해결책은 무엇입니까, 왜 예외 마개는 작동하지 않고 간단한 해결책이 필요한지 알아보십시오. 감사! 대답은 시장으로 받아 들여야합니다. – patman
최고의 답변! JacksonJsonProvider.class 만 등록 할 수 있지만 JacksonJaxbJsonProvider.class는 사용할 수 없습니다. 이것은 정말로 받아 들여진 대답이어야합니다. – wolf97084