2016-03-02 2 views
0

Я работаю с сервером Джерси 1.18, и я хочу добавить на сервер ContainerResponseFilter.Получение экземпляра ResourceConfig сервера Джерси

Для того, чтобы сделать это, при создании сервера, вместо того, чтобы использовать только URL, как здесь:

server = HttpServerFactory.create(BASE_URI); 

мне нужно также передать экземпляр ResourceConfig, как это:

server = HttpServerFactory.create(BASE_URI, resourceConfig); 

Проблема в том, что я не знаю, как я могу получить конфигурацию по умолчанию, которую использует Джерси по умолчанию, поэтому я могу добавить фильтр ...

Любая идея?

ответ

1

Посмотрите на ResourceConfig javadoc. Если вы посмотрите на «Прямые известные подклассы», вы увидите реализацию абстрактного ResourceConfig. Если вы нажмете эту ссылку, вы увидите больше подклассов и щелкните эти ссылки и увидите больше и т. Д. Прочтите jacdocs для каждого из этих подклассов и решите, какой из них лучше всего подходит вашим потребностям.

Например, PackagesResourceConfig - это реализация, которая позволяет сканировать пакеты для @Path и @Provider классов для автоматической регистрации. Просто передать пакет (ы) конструктору

ResourceConfig config = new PackagesResourceConfig("the.packages", "to.scan"); 
+0

Просто добавить, я предположил бы, что реализация по умолчанию будет одним из [ 'ClasspathResourceConfig'] (https://jersey.java.net/apidocs/1.17/jersey /com/sun/jersey/api/core/ClasspathResourceConfig.html), который будет сканировать весь путь к классам. Не на 100 процентов уверен, но звучит правильно. Но я бы просто использовал 'PackagesResourceConfig', поэтому он не тратит время на сканирование всего пути к классам –

+0

нет, сканирование путей по классу не является параметром по умолчанию. см. https://jersey.java.net/nonav/documentation/1.17/user-guide.html глава 2.2 –

+0

@Meiko какой раздел? –

Смежные вопросы