cle*_*per 9 java spring swagger-ui spring-boot spring-kafka
您好,升级到 Spring Boot 3 后,我遇到了 swagger ui 问题。swagger-ui 不再工作,我得到了 404 和“白色标签”页面作为响应。
仔细查看后,我需要更改:implementation(group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.5.8')
至:实现(组:'org.springdoc',名称:'springdoc-openapi-starter-webmvc-ui',版本:'2.0.3')
之后它确实起作用了,但是在我的其他项目之一中,我们遇到了依赖冲突的问题,因此 swagger-ui 在尝试获取 /v3/api-docs/: 之间抛出 500: io.confluence :kafka-avro-serializer:7.3.1 和 springdoc-openapi-starter-webmvc-ui:2.0.3 这两个依赖项需要使用 io.swagger.core.v3:swagger-annotations-jakarta,但版本不同
因此,在 gradle 中,我必须解决冲突以强制 io.swagger.core.v3:swagger-annotations-jakarta:2.2.8。
如果您从 spring 2 升级到 3,则必须使用:
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.3'// swagger ui / openapi 3.0
Run Code Online (Sandbox Code Playgroud)
代替:implementation 'org.springdoc:springdoc-openapi-ui:1.5.8'
如果 swagger-ui 给你一个 /v3/api-docs/ 的错误,可能是因为依赖冲突,所以我能够通过强制依赖来解决它:
错误:
Caused by: java.lang.NoSuchMethodError: 'io.swagger.v3.oas.annotations.media.Schema$AdditionalPropertiesValue io.swagger.v3.oas.annotations.media.Schema.additionalProperties()'
at io.swagger.v3.core.util.AnnotationsUtils.getSchemaFromAnnotation(AnnotationsUtils.java:552) ~[swagger-core-jakarta-2.2.8.jar:2.2.8]
at io.swagger.v3.core.util.AnnotationsUtils.getSchema(AnnotationsUtils.java:1170) ~[swagger-core-jakarta-2.2.8.jar:2.2.8]
at org.springdoc.core.service.GenericParameterService.setSchema(GenericParameterService.java:323) ~[springdoc-openapi-starter-common-2.0.3.jar:2.0.3]
at org.springdoc.core.service.GenericParameterService.buildParameterFromDoc(GenericParameterService.java:299) ~[springdoc-openapi-starter-common-2.0.3.jar:2.0.3]
at org.springdoc.core.service.AbstractRequestService.build(AbstractRequestService.java:321) ~[springdoc-openapi-starter-common-2.0.3.jar:2.0.3]
at org.springdoc.api.AbstractOpenApiResource.calculatePath(AbstractOpenApiResource.java:472) ~[springdoc-openapi-starter-common-2.0.3.jar:2.0.3]
at org.springdoc.api.AbstractOpenApiResource.calculatePath(AbstractOpenApiResource.java:652) ~[springdoc-openapi-starter-common-2.0.3.jar:2.0.3]
at org.springdoc.webmvc.api.OpenApiResource.lambda$calculatePath$11(OpenApiResource.java:219) ~[springdoc-openapi-starter-webmvc-api-2.0.3.jar:2.0.3]
Run Code Online (Sandbox Code Playgroud)
使用 gradle 解决依赖关系:
configurations.all {
resolutionStrategy {
eachDependency { details ->
if (details.requested.group == 'io.swagger.core.v3') {
details.useVersion("2.2.8")
details.because('Swagger ui and Kafka Avro serializer incoptable dependency io.swagger.core.v3:swagger-annotations')
}
Run Code Online (Sandbox Code Playgroud)
就我而言,即使我有 springdoc-openapi-starter-webmvc-ui 我也必须添加此依赖项
MVN
<dependency>
<groupId>io.swagger.core.v3</groupId>
<artifactId>swagger-annotations</artifactId>
<version>2.2.16</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13153 次 |
| 最近记录: |