2017-06-20 115 views
0

我有一個Spring應用程序,其web.xml文件看起來像如下:swagger2不與彈簧安置工作

<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

有幾件事情,可能會出問題:

  1. 你沒有註冊相應的資源處理程序。 example
  2. 你可能會碰到錯誤的網址。 「app」只是一個servlet名稱,不需要出現在url中。 servlet-mapping
  3. 如果您已經正確註冊了資源處理程序並在項目中包含了springfox-swagger-ui依賴項,則需要請求「http://domain:port/service/swagger-ui.html」以查看使用swagger記錄的API。

請參閱以下項目檢查您是否已經正確配置您的應用程序:Spring Security for REST Example Project