2015-08-19 2 views
3

Я планирую реализовать услугу Rest с помощью рамок Resteasy (3.0.11) и сервлетов версии 3.Rest услуги автоматического сканирования с использованием Resteasy + сервлет 3

Я использовал контекст Resteasy сканирования для сканирования мой отдых службы в момент выполнения, но с сервлета версии 3.0, следовательно, это не проверка и исключение бросания (развернуто в tomcat7).

Не могли бы вы предложить мне решить проблему, как сканировать остальные услуги?

Любой пример или конфигурация web.xml были бы хороши.

ответ

3

Один из способов, без любой web.xml (Resteasy сервлет) конфигурация является просто пустой Application подкласс, аннотированный с @ApplicationPath (для URL-отображения).

Согласно спецификации JAX-RS, в среде Servlet 3.x, если вы следующие

@ApplicationPath("/api") 
public class MyAppliation extends Application { 

} 

этого достаточно, чтобы вызвать приложение, чтобы зарегистрировать класс ресурса и провайдера через пути к классам сканирования. В отличие от этого, мы могли бы явным образом зарегистрировать класс и поставщикам ресурсов таким образом

@ApplicationPath("/api") 
public class MyAppliation extends Application { 
    @Override 
    public Set<Class<?>> getClasses() { 
     Set<Class<?>> classes = new HashSet<Class<?>>(); 
     classes.add(MyResource.class); 
     return classes; 
    } 
    @Override 
    public Set<Object> getSingletons() { 
     Set<Object> singletons = new HashSet<Object>(); 
     singletons.add(new MyFilter()); 
     return singletons; 
    } 
} 

Согласно спецификации, когда мы возвращаем непустое набор из любого одного из этих подменены методов, предполагается применение ухаживает всей регистрации, а регистрация класса маршрута отключена.

Теперь это не то, что вы хотите, но это всего лишь справочная информация о том, почему работает пустой класс.

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