2013-05-31 2 views
4

Я пытаюсь добавить swagger в свой проект. Наша настройка немного отличается от примеров проектов. Мы используем guice и guice-servlet для инъекций и запускать наш JerseyServletModule.Настройка Swagger и Google Guice

Сегодня наш web.xml выглядит что-то вроде этого

<web-app ....> 
    <listener> 
     <listener-class>com.mypackage.MyServletModule</listener-class> 
    </listener> 
    <filter> 
     <filter-name>guiceFilter</filter-name> 
     <filter-class>com.google.inject.servlet.GuiceFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>guiceFilter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
</web-app> 

и класс MyServletModule выглядит

public class MyServletModule extends GuiceServletContextListener { 
    ... 
    @Override 
    protected Injector getInjector() { 
    JerseyServletModule api = new JerseyServletModule() { 
     @Override 
     protected void configureServlets() { 
     ... 
     bind().to() 
     ... 
     serve("/api/v1/*").with(GuiceContainer.class); 
     } 
     }; 
    return Guice.createInjector(api); 
    } 
} 

Где и как я должен добавить чванство?

ответ

4

Вы должны сказать Джерси, где найти чванство ресурсы, как это (где org.example ваш пакет, содержащие услуги):

Map<String, String> params = Maps.newHashMap(); 
params.put(PackagesResourceConfig.PROPERTY_PACKAGES, "org.example;com.wordnik.swagger.jaxrs.listing"); 
serve("/api/v1/*").with(GuiceContainer.class, params); 

быть также уверен, что Форс на вашем пути к классам. Если вы используете Maven, добавьте:

<dependency> 
    <groupId>com.wordnik</groupId> 
    <artifactId>swagger-jaxrs_2.9.1</artifactId> 
    <version>1.2.1</version> 
    <scope>compile</scope> 
</dependency> 
+0

Работает как шарм, спасибо большое! – regius

+1

У вас есть образец, настроенный проект в Интернете? – Opal