Регистрация ресурсов и пакетов в Jersey

146
13 июня 2019, 14:10

Jersey который я использую, реализован на спецификации JAX-RS 2.x

я решил заменить web.xml В этой части:

<servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-     
 class>
    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.skillsimprover.restexamples.rest</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/api/*</url-pattern>
  </servlet-mapping>

Я указываю на контейнер сервлета jersey, который будет принимать запросы к rest-контроллерам, указываю что при загрузке нужно просканировать пакет rest по пути com.skillsimprover.restexamples.rest, и указываю, что базовый URI для всех методов и классов ресурса, начинтается с /api/*

Начиная с версии JAX-RS 2.x , можно использовать классы Application или ResourceConfig, для регистрации пакетов и ресурсов.

Я выполнил код так:

@ApplicationPath("api")
public class JerseyConfig  extends ResourceConfig {
public JerseyConfig() {
    packages("com.skillsimprover.restexamples.rest");
    register(EmployeApi.class);
}
}

Тем самым это должно было бы указать, какой пакет и в нем под пакеты нужно сканировать. С помощью аннотации @ApplicationPath("api"), я думал заменить

 <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/api/*</url-pattern>
 </servlet-mapping>

Но ничего не работает.

В чем может быть ошибка? И почему нужно указывать классы ресурсов, ведь я же указал пакет для сканирования?

Почему же этот способ не заменяет web.xml и как заменить web.xml?

А если классов ресурса может быть много, их в большом количестве нужно будет регистрировать ? То есть использование web.xml лучше ?

Или это можно обойти?

READ ALSO
Ошибка FMXLLoader.load()

Ошибка FMXLLoader.load()

Пытаюсь запустить приложение JavaFX, ловлю exception in Application start methodЕсть подозрение, что проблемы в пути к файлу

161
Практические примеры применения масок svg?

Практические примеры применения масок svg?

Прочитал эти статьи по теории масок, но не уверен, что понял всё правильно

187
Получение данных из JSON документа

Получение данных из JSON документа

Хочу достать текст анекдота через данный API, но JSON приходит в формате [{"text:"abcdefgh"}] и из-за [] parse не работает, как получить нужные данные?

143