2017-01-21 15 views
0

Я пытаюсь написать собственный сборщик исключений для CompletionException и показать изображение в случае этого исключения. Это мой картограф:Показать изображение в джерси ExceptionMapper

@Provider 
public class CustomCompleteExceptionManager implements ExceptionMapper<CompletionException> { 

    @Override 
    public Response toResponse(CompletionException e) { 
     return Response 
       .status(Response.Status.BAD_REQUEST) 
       .entity(Paths.get("error.png").toFile()) 
       .type("image/img") 
       .build(); 
    } 

Метод toResponse вызывается, когда мой код бросает CompletionException, но браузер не отображает error.png. Я получаю сообщение об ошибке:

This site can’t be reached 

The webpage at http://localhost:8080/cf/point might be temporarily down or it may have moved permanently to a new web address. 

Когда я пишу только строковое сообщение для Response он работает отлично:

@Provider 
public class CustomCompleteExceptionManager implements ExceptionMapper<CompletionException> { 

    @Override 
    public Response toResponse(CompletionException e) { 
     return Response 
       .status(Response.Status.BAD_REQUEST) 
       .entity(e.getMessage()) 
       .build(); 
    } 

Что может быть проблема?

ответ

1

Тип носителя, установленный в ответе, неверен.
Это должно быть .type("image/png") не image/img.

Это код, который я тестировал в своем местном.

return Response 
      .status(Response.Status.BAD_REQUEST) 
      .entity(Paths.get("/home","kishore","Pictures","Meme.png").toFile()) 
      .type("image/png") 
      .build();