当前位置: 首页 > 知识库问答 >
问题:

Spring靴2.1。3.与Swagger的发布问题-未找到Swagger资源

须景胜
2023-03-14

我已经开发了SpringBootv2.1代码。3.发布和炫耀版本2.9。2.

昂首阔步。JAVA

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("Public - Mock")
                .select()
                .apis(Predicates.not(RequestHandlerSelectors.basePackage("org.springframework.boot")))
                .apis(RequestHandlerSelectors.basePackage("com.example"))
                .paths(PathSelectors.any())
                .build()
                .apiInfo(apiInfo())
                .useDefaultResponseMessages(false)
                .globalResponseMessage(
                        RequestMethod.GET,
                        newArrayList(new ResponseMessageBuilder().code(500).message("Error").build()));
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("API")
                .description("API")
                .version("0.1")
                .build();
    }
}

波姆。xml

<groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>de.flapdoodle.embed</groupId>
    <artifactId>de.flapdoodle.embed.mongo</artifactId>
    <scope>test</scope>
</dependency>

<!-- Add Log4j2 Dependency -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>


<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

<repositories>
<repository>
    <id>swagger</id>
    <name>swagger</name>
    <url>http://oss.jfrog.org/artifactory/oss-snapshot-local</url>
</repository>
</repositories>

<build>
<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
    </plugin>
</plugins>
</build>

应用性质

spring.application.name=API Management
server.servlet.context-path=/api-management/v1

当我发射:http://localhost:8080/api-management/v1/swagger-ui.html#

共有1个答案

佘飞鸣
2023-03-14

根据Swagger github的讨论,Spring Boot2. x还没有得到官方支持。

但是,在等待发布版本时,它可以使用JFrog存储库中的快照版本。我已经尝试过了,它适用于Spring Boot 2.1。

<dependencies>
    ...
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-data-rest</artifactId>
        <version>3.0.0-SNAPSHOT</version>
    </dependency>
    ...
</dependencies>

<repositories>
    <repository>
        <id>JFrog</id>
        <name>JFrog Snapshot Repository</name>
        <url>http://oss.jfrog.org/artifactory/oss-snapshot-local/</url>
    </repository>
</repositories>

然后使用@EnableSwagger2WebMvc而不是@EnableSwagger2

@SpringBootApplication
@EnableSwagger2WebMvc
@Import(SpringDataRestConfiguration.class)
public class MyApplication {

    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }

}

上述解决方案引自此处。

 类似资料:
  • 我在Spring Boot中面临着与Swagger集成的问题。看一下代码和错误片段。

  • springboot 2和spring 5附带的默认jersey服务器和其他相关jersey依赖项jar是jersey-server-2.6,但是,当我试图将swagger-jersey2-jaxrs依赖项添加到我的maven项目中时,jersey服务器依赖项被覆盖为jersey-server-2.25.1。因此,我的应用程序无法启动,出现以下错误。 如果删除依赖项,则应用程序运行正常。 附加依赖

  • 对于一个nodejs项目,我正在使用swagger ui express和swagger jsdocs作为swagger API。当我尝试使用Swagger调用应用程序的POSTendpoint时,没有使用发送数据。有什么问题吗?我的全部相关代码如下: Swagger正在执行get请求,但在发送数据时,d标志为空。有人有主意吗? 最好的问候

  • 使用Spring Boot。 以下是中的一个片段: 如何解决这个问题?

  • 我有一个使用Spring Boot2.2.4.Release的REST应用程序。我的REST控制器的注释如下 Spring Boot web应用程序是否可以使用Swagger(版本2.1.1中的swagger-core,...)? 有一个SpringFox项目,但它不是最新的。springdoc-openapi也是可用的。但是直接使用Swagger会是我的第一个想法。

  • 在集成springdoc openapi数据rest库以将Pageable(spring date commons)对象映射到Swagger UI中的正确URL参数后,我遇到了以下问题: 请问我怎样才能有效地解决这个问题?谢谢