Springboot使用Swagger2报错: Unable to infer base url.This is common when using dynamic servlet
时间: 2023-09-24 20:02:22 浏览: 103
springboot结合Swagger2 api
这个问题通常是因为 Swagger2 没有正确识别应用程序的上下文路径而导致的。你可以尝试以下解决方案:
1. 在 Swagger2 配置类中,将 `apiInfo()` 方法中的 `basePackage` 设置为你的控制器所在的包名,例如:
```
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
}
```
2. 如果你的应用程序有一个上下文路径,你需要将其添加到 Swagger2 的配置文件中。例如,如果你的应用程序上下文路径为 `/myapp`,则需要在 `application.properties` 或 `application.yml` 文件中添加以下属性:
```
server.servlet.context-path=/myapp
```
3. 如果你使用的是 Tomcat 作为应用程序服务器,则需要在 `server.xml` 文件中添加以下配置:
```
<Context path="/myapp" docBase="myapp" reloadable="true"></Context>
```
请注意,将 `path` 属性设置为你的应用程序上下文路径,将 `docBase` 属性设置为你的应用程序目录。
阅读全文