[Swagger Error] Spring boot 3.0.x 이상 springdoc-openapi Swagger 화면이 로드되지 않을 때.
·
Server/Error
다음과 같이 swagger-ui에 접속은 되는데, 내용들이 불러와지지 않고 하얀 화면만 보이는 증상이 발생했다. Spring Security 경로도 열어줬고, 설정도 다 했는데 왜 안될까 고민하며 F5만 누르다가 혹시 몰라 F12를 눌러 콘솔을 찾아봤다. 다음 사진을 보면 /swagger-ui/ 다음으로 하위 경로에 있는 .css, .js 파일들이 로드되지 못하고 있는 것을 알 수 있었다. 기존 Security Config에서 Swagger의 경로 지정을 아래와 같이 지정했었는데 private final String[] SWAGGER = {"/v3/api-docs", "/swagger-ui", "/swagger-ui/index.html"}; 하위 경로까지 모두 허용하는 코드로 변경했다. private f..
[Spring Boot] SpringBoot 3.0.x 이상에서 Swagger 사용
·
Server/Spring&Spring Boot
Java 17, Spring Boot 3.0.x 이상은 도대체 무슨 격동이 일어난 것일까.. 기존에 사용하던 세팅이 지원이 안 되는 경우가 많다. Swagger 역시 springfox로 설정하여 접속하게 되면 403 에러가 발생하면서 접속 자체가 막혀버리는 현상이 일어났다. 스택오버플로우를 찾아보니 springfox-boot-start 3.0.0, springdoc-openapi-ui 1.6.13 등이 아직 spring boot 3.0을 지원하지 않고 있는 것 같다. 우리가 사용할 수 있는 방법은 springdoc-openapi-starter-webmvc-ui 사용하는 방법이었다 의존성 추가 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-..
[Swagger Error] java.lang.TypeNotPresentException: Type javax.servlet.http.HttpServletRequest not present
·
Server/Error
Swagger를 추가하고 난 후, 새로운 새로운 예외가 발생하기 시작했다. java.lang.TypeNotPresentException: Type javax.servlet.http.HttpServletRequest not present stackoverflow를 찾아보니 Spring Boot 3.0은 JavaEE가 아닌 Java 17 및 JakartaEE용으로 빌드되었고, 현재 JakartaEE를 지원하는 SpringFox 릴리즈가 존재하지 않기 때문에 생기는 오류라고 한다. 해결 방법으로는 javax.servlet에 관한 의존성을 추가하면 된다. Gradle implementation 'javax.servlet:javax.servlet-api:4.0.1' Maven javax.servlet javax...
[Spring Boot] Spring Security 6.0 Configuration.
·
Server/Spring&Spring Boot
새로운 프로젝트를 시작하면서 Spring Boot 3.0.1, Java 17을 사용하게 되었다. 기존 Spring Boot. 2.7.x 버전에서 사용하던 Spring Security 설정을 그대로 복사 붙여 넣기를 했더니 @deprecated된 명령어도 있고, 아예 사라진(변경된) 명령어가 존재하여 새로운 버전에 맞춰 코드를 수정하였다. 기존 Security 설정 @Configuration @EnableWebSecurity @RequiredArgsConstructor public class SecurityConfig { private final UserService userService; @Value("${jwt.secret}") private String secretKey; @Bean public Se..
[Spring Boot Error] Spring boot 3.0.0 이상, Java 17 미만 gradle build error
·
Server/Error
팀프로젝트를 위해 깃랩 레파지토리에서 프로젝트를 pull 한 상황인데, 다음과 같은 에러가 발생했다. Java 17 미만의 버전을 사용할 경우 해당 에러가 발생한다는 것을 알고 있었기 때문에 프로젝트 설정에 들어가서 Java 17 버전을 선택하였다. 하지만 여전히 Java 11로 되어있다고 에러가 발생하면서 빌드가 되지 않았다. 다시 Settigs -> gradle 부분에서 Java 11로 되어 있는 부분을 발견하고 해당 부분을 변경한 후 Java 17 버전을 찾아 선택한 후 다시 그래들 빌드를 시켜주었다. 성공!
[Project] 2차 미션 발표 내용 - Redis 적용과 활용
·
회고록/Archive
발표를 앞서 REDIS에 설치를 진행하면서 Local 문제가 발생하여 멘토님께 질문하고, REDIS를 설치함으로써 에러가 발생하여 Spring이 올라간 Container가 Doker에서 떨어지면서 채점이 되지 않아 강사님께 질문하다가 REDIS와 Refresh 토큰을 시도하고 있다는 것을 들키면서 이 발표를 진행하게 되지 않았나 생각이 듭니다. 저보다 REDIS를 먼저 시도하고, 이미 프로젝트를 완료해 본 경험이 있으신 분들이 계실 것입니다. 저는 아직 완벽하게 성공을 이룬것이 아니고, 여전히 여러 방법을 시도 중에 있다는 것을 감안하고 발표를 들어주시면 감사하겠습니다. 틀린 점이나, 고민하고 있는 상황에 대해 답을 알고 계신 분은 댓글(또는 라운지 채널에)을 남겨주시면 감사하겠습니다. 꼭..! REDI..
[Redis] Redis Spring 세팅
·
Basic/Database
이전글 Redis 로컬 설치 방법은 다음 글을 참고하세요 [Redis] Redis 설치 Redis 소개 Key - Value 형태 인메모리 데이터 저장 구조 문자열, 해시, 리스트, 셋, 스트림 등 데이터 구조 제공 Spring Data Redis Some commands (such as SINTER and SUNION) can only be processed on the server side when all invo chordplaylist.tistory.com Reids 설정 Spring Gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-data-redis' application.yml host, port 추가 spr..
[Redis] Redis 설치
·
Basic/Database
Redis 소개 Key - Value 형태 인메모리 데이터 저장 구조 문자열, 해시, 리스트, 셋, 스트림 등 데이터 구조 제공 Spring Data Redis Some commands (such as SINTER and SUNION) can only be processed on the server side when all involved keys map to the same slot. Otherwise, computation has to be done on client side. Therefore, it is useful to pin keyspaces to a single slot, which lets make docs.spring.io Introduction to Redis Learn about th..
코드플리
코드 플레이 리스트