저지 2.0을 사용하여 REST 서비스를 만들고 있습니다. 나는 특정 예외를저지 2.0 jaxrs RI - json string 예외가있는 경우
if(json.equals("") || json.equals(" ")) {
throw new ArgumentException("bad post data");
}
public class ArgumentException extends RestException {
.....
public ArgumentException(String message) {
super(Status.BAD_REQUEST,message);
}
}
public class RestException extends WebApplicationException {
...........
public RestException(Status status, String message) {
super(Response.status(status)
.entity(message)
.type("text/plain")
.build());
/*
super(Response.status(status)
.entity(new ErrorBean(status.getStatusCode(),message))
.type(MediaType.APPLICATION_JSON)
.build()); */
}
ErrorBean is a POJO
RestException 내부 일반 문자열 작품으로 오류 (오른쪽 HTTP 코드 (400) 및 메시지)을 반환하는 방법을 제기 WebApplicationException에게
방법을 확장하고있다. 그러나 내가 ErrorBean POJO를 전달하려고하고 응답으로 MediaType.APPLICATION_JSON을 사용하려고하면 "헤더가 이미 보내졌습니다"라는 HTTP 오류 코드 500 (배관의 일부 내부 문제)과 빈 응답이 표시됩니다.
나는 또한이 질문에 보았다Returning JSON or XML for Exceptions in Jersey
내가
같은 JSON으로 코드 및 메시지와 함께 예외를 반환 할 수있는 방법 { "코드"400, "메시지"....}
업데이트
난에 SO뿐만 아니라 메일 링리스트를 저지 사용자 응답을 받았습니다. 단계는 비 AJXB POJO 응용 프로그램에서
ResourceConfig의 RC = 새로운 ResourceConfig(). 패키지 ("테스트") 어떤 주석
- 이다. (JacksonFeature를 등록합니다. 수업);
감사합니다. 이것은 놓친 것입니다. 나는 다른 사람들의 유익을위한 완전한 예를 추가했다. – rjha94