swagger2不与弹簧安置工作
问题描述:
我有一个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'
我在哪里出错了?
答
有几件事情,可能会出问题:
- 你没有注册相应的资源处理程序。 example
- 你可能会碰到错误的网址。 “app”只是一个servlet名称,不需要出现在url中。 servlet-mapping
- 如果您已经正确注册了资源处理程序并在项目中包含了springfox-swagger-ui依赖项,则需要请求“http://domain:port/service/swagger-ui.html”以查看使用swagger记录的API。
请参阅以下项目检查您是否已经正确配置您的应用程序:Spring Security for REST Example Project