Подавление страниц ошибок Jetty при использовании встроенного сервера Jetty в Equinox (OSGi)

Я использую встроенный сервер Jetty, который поставляется с Equinox (а не с начальной загрузкой Jetty) вместе с Jersey, чтобы предоставить JAX-RS API для моего пользовательского интерфейса, который представляет собой чистый html5/css3/JavaScript.

Проблема в том, что для определенных состояний ошибок Jetty предоставляет страницу с ошибкой. Это проблема, потому что я использую различные коды состояния вместе с объектами xml/json как часть того, как работает мой API.

Я не хочу, чтобы мои клиенты API отправляли html.

Я также использую коннектор OSGi JAX-RS, поэтому у меня нет доступа к файлу web.xml в моих пакетах приложений. Компоненты JAX-RS развертываются как службы OSGi и динамически регистрируются в Джерси.

Кто-нибудь знает, как отключить страницы ошибок, чтобы мои объекты не подавлялись и не генерировался html при использовании Jetty в этой конфигурации?

The JARs I am using for jetty are:

  • org.eclipse.equinox.http.jetty_3.0.100.v20130327-1442.jar
  • org.eclipse.jetty.continuation_8.1.10.v201312.jar
  • org.eclipse.jetty.http_8.1.10.v201312.jar
  • org.eclipse.jetty.jetty.io_8.1.10.v201312.jar
  • org.eclipse.jetty.jetty.security_8.1.10.v201312.jar
  • org.eclipse.jetty.jetty.server_8.1.10.v201312.jar
  • org.eclipse.jetty.jetty.servlet_8.1.10.v201312.jar
  • org.eclipse.jetty.jetty.util_8.1.10.v201312.jar
  • С уважением,

    Джейсон.


    person jason1970    schedule 16.02.2014    source источник


    Ответы (1)


    Вы пытались реализовать org.eclipse.equinox.http.jetty.JettyCustomizer для настройки сервера причала и предоставления собственного обработчика ошибок. Вы должны определить системное свойство org.eclipse.equinox.http.jetty.customizer.class и указать полное имя вашего класса, чтобы причал мог использовать этот настройщик.

    person mferlan    schedule 17.02.2014
    comment
    Спасибо за предложение. Я реализовал JettyCustomizer и собственный класс ErrorHandler. Это остановило вывод html. Однако сейчас я пытаюсь понять, как предоставить объект, который я создал в своем ответе jaxrs. Мой код выглядит так. Ответ .status(Response.Status.NOT_FOUND) .entity(сообщение) .build(); - person jason1970; 17.02.2014
    comment
    Не бери в голову. моя сущность удаляется только на 404. Я могу жить с этим, и это действительно имеет смысл. - person jason1970; 17.02.2014
    comment
    @ jason1970 Спасибо, что подняли вопрос. Предоставил бы мне советы или учебник по реализации того же самого. - person ABHIJITH KINI; 28.07.2017