【问题标题】:Swagger and Google Guice setupSwagger 和 Google Guice 设置
【发布时间】:2013-05-31 13:18:12
【问题描述】:

我正在尝试向我的项目添加招摇。我们的设置与示例项目略有不同。我们使用 guice 和 guice-servlet 来注入并启动我们的 JerseyServletModule。

今天我们的 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);
  }
}

我应该在哪里以及如何添加 swagger?

【问题讨论】:

    标签: guice swagger guice-servlet


    【解决方案1】:

    您需要告诉 Jersey 在哪里可以找到这样的 Swagger 资源(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);
    

    还要确保 Swagger 在您的类路径中。如果您使用的是 Maven,请添加:

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

    【讨论】:

    • 你在网上有任何示例、配置项目吗?
    猜你喜欢
    • 1970-01-01
    • 2013-02-15
    • 2012-12-07
    • 2012-03-18
    • 1970-01-01
    • 1970-01-01
    • 2021-03-20
    • 2011-08-18
    • 1970-01-01
    相关资源
    最近更新 更多