2013-05-31 62 views
4

我试图给我的项目添加招摇。我们的设置与示例项目有点不同。我们使用guice和guice-servlet来注入并启动我们的JerseyServletModule。Swagger和谷歌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); 

另外还必须扬鞭是在classpath。如果您使用的是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