Spring boot 无法使Swagger UI使用Spring boot

Spring boot 无法使Swagger UI使用Spring boot,spring-boot,swagger,swagger-ui,Spring Boot,Swagger,Swagger Ui,我正在尝试让Swagger UI与Spring Boot 1.2.1配合使用。我按照上的说明在spring配置中添加了@EnableSwagger 当前,当我转到http://localhost:8080/api-文档但没有漂亮的HTML 我正在使用Maven并添加了对swagger ui的依赖: <dependency> <groupId>org.ajar</groupId> <artifactId>swagger-spring-

我正在尝试让Swagger UI与Spring Boot 1.2.1配合使用。我按照上的说明在spring配置中添加了
@EnableSwagger

当前,当我转到
http://localhost:8080/api-文档
但没有漂亮的HTML

我正在使用Maven并添加了对swagger ui的依赖:

<dependency>
    <groupId>org.ajar</groupId>
    <artifactId>swagger-spring-mvc-ui</artifactId>
    <version>0.4</version>
</dependency>

微开

我也有同样的问题,但这个链接对我很有用:

它使用以下内容预先填充swagger ui资源url框: ${pageContext.request.contextPath}/api文档

当我手动编辑它时,删除${pageContext.request.contextPath}并点击Explore,它会显示我的api文档,我甚至可以成功地尝试我的端点。因此,这肯定是一个问题,但可能不会涉及${pageContext.request/contextPath}

查看javascript的源代码: url:window.location.origin+“${pageContext.request.contextPath}/api文档”

在静态招摇过市ui html中,我将此部分编码为:

发现URL:“./resource list.json”

我希望这有点帮助

我的Swigger ui v0.4(带有spring v4.14和Swigger springmvc v0.9.4)运行良好,尽管我最初遇到了一些类似的问题。看来这门课就成功了

@Configuration
@EnableSwagger
public class SwaggerConfig extends WebMvcConfigurerAdapter {

    @Autowired
    private SpringSwaggerConfig springSwaggerConfig;

    @Bean
    public SwaggerSpringMvcPlugin customImplementation() {
        return new SwaggerSpringMvcPlugin(springSwaggerConfig).apiInfo(
                apiInfo());
    }

    private ApiInfo apiInfo() {
        return new ApiInfo(/* strings */);
    }

    @Override
    public void configureDefaultServletHandling(
            DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}
我相信相关的是被覆盖的
configureDefaultServletHandling
。在我的主
WebApplicationInitializer
上,我有:

@Import(SwaggerConfig.class)
最后,我修复了UI的位置框显示“${pageContext.request.contextPath}/api文档”的问题,方法是将其包含在依赖项中:

<dependencies>
        <dependency>
            <groupId>com.mangofactory</groupId>
            <artifactId>swagger-springmvc</artifactId>
            <version>0.9.4</version>
        </dependency>
        <dependency>
            <groupId>org.ajar</groupId>
            <artifactId>swagger-spring-mvc-ui</artifactId>
            <version>0.4</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <!--<version>8.0.15</version>-->
    <scope>provided</scope>
</dependency>

org.apache.tomcat.embed
汤姆卡特·贾斯珀
假如
它提供了与JSP处理相关的内容。它包含在
spring boot
的依赖项中,但通常不提供


希望能有所帮助。

您的问题在于您的
swagger配置文件。您需要取出
@EnableWebMvc
,因为这会导致默认的Spring引导视图解析器被默认的“SpringWebMvc”解析器覆盖,后者以不同的方式提供静态内容

默认情况下,Spring Boot将提供来自以下任何目录的静态内容:

  • /META-INF/资源/
  • /资源/
  • /静止的/
  • /公开的/
包括webjar

我也有同样的问题,我在文档中发现:

如果您想完全控制SpringMVC,可以添加自己的
@配置
,并用
@EnableWebMvc
注释。如果您想保留Spring Boot MVC功能,并且只想添加额外的MVC配置(拦截器、格式化程序、视图控制器等),您可以添加自己的
@Bean
,类型为
WebMVCConfigureAdapter
,但不添加


我希望这会有所帮助。

我建议您使用@EnableSwagger2标记,并遵循以下步骤和代码:

此外,我使用的依赖关系如下,效果非常好:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.2.2</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.2.2</version>
    <scope>compile</scope>
</dependency>

伊奥·斯普林福克斯
springfox招摇过市用户界面
2.2.2
编译
伊奥·斯普林福克斯
springfox-Swagger 2
2.2.2
编译

我为Swagger做了单独的配置,我的问题是没有
@EnableAutoConfiguration
它就不能正常工作

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

如果您在springfox swagger ui 3.x或更高版本中遇到此问题

请尝试下面的url。。这对我很管用

/

有关完整的招摇过市记录步骤,请参阅:

正如上面Tamas所指出的,问题在于使用@EnableWebMvc,它绕过了默认设置,跳过了Swagger需要的一些东西。对我来说,将其切换到@EnableSwagger2足以解决我的项目中出现的问题,这些问题显示出类似的症状。

你尝试过了吗?@Ron现在刚尝试过,但不起作用。只需按照这里写的内容进行操作——如果你在这里没有得到答复,我建议在该存储库中打开一个问题。Adrian的响应速度非常快,Spring Boot无法正确呈现JSP。请参阅链接到外部资源是可以的,但链接可能会随着时间的推移而发生显著变化或完全中断。请在您的答案中包含足够的信息,以便在不依赖外部信息的情况下实现解决方案。详细答案如下:它也在帮助2019年的人们:)我没有`@EnableWebMvc`但仍然面临空页问题。
SwaggerConfiguration
文件在哪里?apinfo的jar文件在哪里以上代码?@Chandra
springfox core