2014-10-16 4 views
0

기본적으로 Jersey는 손상되었습니다. 반환 된 HTML이나 로그 파일에 예외를 표시하지 않습니다. 배포 제한으로 인해 저지 리소스에 XML 등록 메커니즘을 사용할 수 없으며이를 프로그래밍 방식으로 수행하고 있습니다. 다음은 아무런 효과가 없습니다 :Jersey 2.10.4에 ExceptionMapper 등록

@Provider 
public class ExceptionDump implements ExceptionMapper<WebApplicationException> { 
    @Override 
    public Response toResponse(WebApplicationException ex) { 
     String trace = Exceptions.getStackTraceAsString(ex); 
     return Response.status(500).entity(trace).type("text/plain").build(); 
    } 
} 

public class App extends Application { 
    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> cls = new HashSet<Class<?>>(super.getClasses()); 
     cls.add(ExceptionDump.class); 
     return cls; 
    } 
    ... 
} 

그리 즐 컨테이너로드 및 실행을하지만, 예외 매퍼가 무시되고 그리즐리는 여전히 보여줍니다 "요청이 실패했습니다." 오류시.

+0

"XML 등록 메커니즘"이란 무엇을 의미합니까? web.xml 파일? –

+0

예, web.xml. 나는 실제로이 일을 지금 해왔다. 나는 대답을 게시 할 것이다. – Reinderien

답변

0

Throwable과 같이 (보다) 상위 클래스 인 WebApplicationException을 사용하여 수정되었습니다. 간단히 말해서 WebApplicationException을 상속받지 않는 예외가 있기 때문에보다 일반적인 부모가 사용되지 않는 한 많은 내부 오류가보고되지 않을 것이라는 경고없이 웹의 예제 대부분이 WebApplicationException으로 표시되는 것은 잘못입니다.

+0

프로그래밍 방식의 설정은 어떻게됩니까? 넌 어떻게 그걸 했니? – Guido

+0

은 ExceptionMapper를 구현합니다 Reinderien