일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- til
- programmers
- 코딩테스트
- SpringBoot
- 해시
- Generics
- 완전탐색
- 브루트포스
- Java
- 백준
- parametric search
- binary search
- 구현
- Algorithm
- 내일배움캠프
- 알고리즘
- BFS
- 객체지향
- 일정 관리
- 프로그래머스
- 이분탐색
- Spring
- File
- 이분 탐색
- Baekjoon
- querydsl
- 누적합
- 계산기 만들기
- ES
- Elasticsearch
- Today
- Total
개발하는 햄팡이
[SpringBoot3.5.X][Swagger]response status is 500 /v3/api-docs/auth 본문
[SpringBoot3.5.X][Swagger]response status is 500 /v3/api-docs/auth
hampangee 2025. 8. 4. 17:27최근 하고 있는 프로젝트의 mvp가 어느정도 끝나고 이제 전체적인 코드 리팩토링과 추가 기능들을 작업하고 있다.
그래서 api명세서도 만들고 뒤늦게 테스트코드도 작성해놓고 하면서 api명세서도 수정하고 그럴려고 하고 있는데
Swagger 설정을 하였더니 제목과 같은 오류가 떴다.
원래대로라면
http://localhost:8080/swagger-ui/index.html
default설정되어있는 속으로 접속했을때 위 링크로 들어가면 api들이 쭈루룩 떠야하는데
아래처럼 오류가 났다.
그리고 콘솔창
ControllerAdviceBean을 못찾는다데요...
나와 같은 문제들을 겪은 사람들이 블로그에 많았는데,
SpringBoot를 다운그레이드 하거나 Swagger를 다운그레이드 하는 사람들이 많은 것 같았다....
일단 build.Gradle파일을 보면 아래처럼 생겼다.
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.3'
id 'io.spring.dependency-management' version '1.1.7'
}
group = 'com.explorer'
version = '0.0.1-SNAPSHOT'
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'jakarta.persistence:jakarta.persistence-api:3.1.0'
implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-mail'
// S3
implementation "org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE"
// queryDsl
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta'
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
// redis
implementation 'org.springframework.boot:spring-boot-starter-data-redis'
// swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.6.0'
compileOnly 'org.projectlombok:lombok'
// runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.mysql:mysql-connector-j'
// jwt
compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.12.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.12.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-jackson', version: '0.12.5'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
tasks.named('test') {
useJUnitPlatform()
}
근데... 현업이라고 생각하면
새로 들어오는애를 기존에 있던 애한테 맞추지
이미 들어와있는애의 버전을 바꾸진 않을거 아님...?
그래서 죽어도 기존에 있던걸 건들기 싫어서 (다른 문제 생기는게 더 골치아픔...안되면 차라리 swagger를 안쓰지!)
Maven Repository에서 의존성을 뒤져봤다...
SpringBoot 3.X와 호환되는 Swagger는 SpringDoc OpenAPI Starter WebMVC UI 이라서 해당 의존성 버전을 쭉 살펴보니
음...
너무 많다...
현재 제일 많은 사람들이 사용하고 있는 버전은 2.6.0인데 지금 내가 사용하는 것과 동일하다.
뭔가 얼마전까지는 잘 쓸 수 있었던것 같기도?
일단 나는 SpringBoot 버전을 제일 최신 버전을 사용하고 있었기 때문에 swagger도 제일 최신 버전을 사용해야 될 것 같다는 생각이 들어 2.8.x중에서 가장 많은 사람들이 사용하는 2.8.8 버전을 선택했다.
SpringDoc에서는 2.8.9버전을 사용하라고 하고있긴하다.
https://springdoc.org/#getting-started
OpenAPI 3 Library for spring-boot
Library for OpenAPI 3 with spring boot projects. Is based on swagger-ui, to display the OpenAPI description.Generates automatically the OpenAPI file.
springdoc.org
의존성 바꾸자마자 성공
이제 문서 작업하러 고고
'Back-End > Spring' 카테고리의 다른 글
[Spring] .csv 파일 읽어서 데이터를 DB에 저장 (6) | 2025.08.10 |
---|---|
[Spring] 파일입출력 - 같은 파일 업로드 요청 시 계속 저장되는 문제 - Hash로 해결 (4) | 2025.07.29 |
[Spring][JPA][뉴스피드 만들기] JPA의 변경 감지 (set메소드) vs save() 호출 - 무엇을 선택할까? (5) | 2025.06.14 |
[Spring][일정 관리 앱 만들기] CRUD 생성 - QueryDsl 쿼리문 코드 작성 (1) | 2025.05.24 |
[Spring][일정 관리 앱 만들기] CRUD 생성 - QueryDsl 시작하기 (2) | 2025.05.24 |