swagger2没有使用Spring REST

时间:2017-06-20 08:03:46

标签: spring rest spring-mvc swagger-2.0

我有一个spring应用程序,其web.xml如下所示:

<servlet>
  <servlet-name>app</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/app-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>/service/*</url-pattern>
    </servlet-mapping>

app-servlet.xml内,我有以下配置条目:

<context:component-scan base-package="com.rest.apidoc" />

我在SwaggerConfig目录

中有com.rest.apidoc
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api(){
        return new Docket(DocumentationType.SWAGGER_2)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
}

现在,当我尝试运行应用http://domain:port/app/service/api-docs时,我在控制台上遇到错误No mapping found for HTTP request with URI [/app/service/api-docs] in DispatcherServlet with name 'app'

我哪里错了?

1 个答案:

答案 0 :(得分:1)

可能出现的问题很少:

  1. 您没有注册适当的资源处理程序。 example
  2. 您可能会输入错误的网址。 &#34;应用&#34;只是一个servlet名称,不需要出现在url中。 servlet-mapping
  3. 如果您已正确注册资源处理程序并在项目中包含springfox-swagger-ui依赖项,则需要请求&#34; http://domain:port/service/swagger-ui.html&#34;看看用swagger记录的API。
  4. 请参阅以下项目,检查您是否正确配置了应用程序:Spring Security for REST Example Project