Отображение исключений Grizzly в консоли Eclipse

При запуске простого интерфейса REST с Eclipse с использованием зависимости jersey-container-grizzly2-http Maven версии 2.13 я не получаю никаких исключений, отображаемых после запуска ошибок в браузере. Другие выходные данные журнала отображаются в консоли просто отлично, но исключения просто проглатываются.

Я создал обработчик исключений, который не создается и не вызывается:

package mypackage.rest;
@Provider
class ExceptionHandler implements ExceptionMapper<Throwable>
{
    @Override public Response toResponse(Throwable t)
    {
        System.out.println("toResponse called");
        t.printStackTrace();
        return Response.status(Status.BAD_REQUEST).entity(t.getMessage()).build();
    }
}

Конструкция сервера Grizzly:

package mypackage.rest;
public class GrizzlyHttpUtil
{
    public static final URI     baseURI = UriBuilder.fromUri("http://localhost/").port(10010).build();

    public static HttpServer startThisServer()
    {
        ResourceConfig resCon = new ResourceConfig().packages("mypackage.rest");
        return server = GrizzlyHttpServerFactory.createHttpServer(baseURI, resCon);
    }
}

Класс REST API

package mypackage.rest;
@Path("")
public class Rest
{
  @GET @Path("datasets") @Produces(MediaType.TEXT_HTML)
  public static String datasets()
  {
    throw new RuntimeException();
  }
}

Обновление У меня получилось работать с resCon.register(ExceptionHandler.class);. Почему это необходимо? Почему ResourceConfig().packages(...) не справляется с этим самостоятельно?


person Konrad Höffner    schedule 24.10.2014    source источник


Ответы (1)


Я только что должен был решить ту же проблему. Вот мой код инициализации, который убеждает HTTP-сервер Grizzly отображать ошибки: http://source.apidesign.org/hg/bck2brwsr/rev/18ae4fbcfb87

Logger l = Logger.getLogger("org.glassfish.grizzly.http.server.HttpHandler");
l.setLevel(Level.FINE);
l.setUseParentHandlers(false);
ConsoleHandler ch = new ConsoleHandler();
ch.setLevel(Level.ALL);
l.addHandler(ch);

Я использую Гризли 2.3.3

person Jaroslav Tulach    schedule 10.03.2015