트러블슈팅

트러블슈팅

[오류를 잡아보자] @Transactional Duplicate entry 이슈

Notion - @Transactional Duplicate entry 이슈문제Duplicate entry '325' for key 'token.UK_c56184j4djjqx16jwprg167qp'이전에 개발하던 개인 프로젝트에서 @Transactional에 대한 이해가 부족하여 발생한 문제이다. 아래는 문제가 발생한 코드의 일부이다. `UserService`@Transactionalpublic Long userLogin(UserForm userForm) { User user = userRepository.findByEmail(userForm.getEmail()) .orElseThrow(InvalidSigninInformation::new); if(!scryptPasswor..

트러블슈팅

[오류를 잡아보자] Spring security에서 DeferredResult 처리 시 401 Unauthorized

Notion - Spring security에서 DeferredResult 처리 시 401 Unauthorized문제401 - Full authentication is required to access this resourceorg.springframework.security.access.AccessDeniedException: Access Denied최근에 팀 프로젝트 진행하면서 Long polling을 이용하여 알림기능을 구현하였다.이 과정에서 DeferredResult와 Spring security 같이 사용하게 되었는데, 요청 시에는 정상적으로 인증이 되었어도 응답 시에 401 Unauthorized가 반환되는 상황이 발생했다. 이슈가 발생했던 코드는 아래와 같다.@GetMapping(value ..

트러블슈팅

[오류를 잡아보자] NoClassDefFoundError / ClassNotFoundException: org.hibernate.dialect.MySQL57Dialect

문제 java.lang.NoClassDefFoundError: org/hibernate/dialect/MySQL57Dialect 최근에 개인 프로젝트 리팩토링을 진행하면서 스프링 부트 버전(2.5.9 → 3.2.1)을 업그레이드 하면서 발생하게 되었다. 단순히 Run만 하더라도 발생하게 되었으며, 이미 Github에서 관련 Issue가 다뤄진 적이 있어 정리해두려고 한다. 원인 Spring Boot 3.2.1 버전 부터 명시적인 Dialect 설정을 했을 시 발생하게 되는 문제이다. Spring Boot는 JPA Provider가 적절한 Dialect를 찾아내게 하는 책임을 가지도록 하였으나, 이를 명시적으로 지정하게 되면서 발생하게 된 것이다. 하지만 프로젝트를 진행하면서 이를 명시적으로 지정했던 기억..

트러블슈팅

Kakao Login 시 401 Unauthorized

문제점 & 삽질 과정 카카오 로그인을 진행하면서, 토큰을 가져오는 단계에서 문제가 발생했다. 401 Unauthorized: [no body] https://kauth.kakao.com/oauth/token 위 경로로 데이터를 보내 accessToken과 refreshToken을 받아와야 하는데, 401 Unauthorized 에러가 발생했다. 구글링을 통해 찾아본 결과 의심되는 상황은 아래와 같이 있었다. Content-type: application/x-www-form-urlencoded 미설정 HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); 위 처럼 header에..

트러블슈팅

CreatedDate, LastModifiedDate 사용 시 값이 들어가지 않는 이슈

문제점 최근에 알게 된 어노테이션인 @CreatedDate와 @LastModifiedDate를 사용할 때 값이 제대로 들어가지 않는 이슈가 있었다. 이유를 찾아보았고 문제는 다음과 같았다. @EnableJpaAuditing @EntityListeners 단순히 사용할 필드에 두 어노테이션을 붙히기만 하는 것이 아닌 위 두 어노테이션을 통해 기능을 활성화 해야지 정상적으로 동작한다. 해결 Application 실행 부분에서 @EnableJpaAuditing 어노테이션으로 Auditing 기능을 활성화 해야한다. @SpringBootApplication @EnableJpaAuditing public class TestApplication { public static void main(String[] args..

트러블슈팅

[오류를 잡아보자] 생성자 바인딩 이슈 (Cannot resolve parameter names for constructor)

문제 java.lang.IllegalStateException: Cannot resolve parameter names for constructor cat.community.NyangMunity.board.request.BoardListRequest(java.lang.Integer,java.lang.Integer) 최근에 개인 프로젝트를 리팩토링 하는 과정에서 발생한 문제이다. 발생하게 된 계기는 자바 버전(15 → 17)과 스프링 부트 버전(2.5.9 → 3.2.0)을 업그레이드 하면서 발생하게 되었다. 기존 코드는 아래와 같았고, 정상적으로 작동하던 코드에서 에러가 발생했다. @Getter @Setter @Builder public class BoardListRequest { private stati..

트러블슈팅

[오류를 잡아보자] JSON 직렬화에서의 이슈 해결 (through reference chain)

Notion - JSON 직렬화에서의 이슈 해결 (through reference chain) 문제 최근 팀 프로젝트를 하면서 겪은 문제인데, 진행 중의 겪은 이슈의 원인을 제대로 파악하지 못해서 자세히 정리해보게 되었다. 문제의 코드와 에러 내용은 아래와 같았다. 코드 public class Article { @OneToMany(mappedBy = "article", fetch = FetchType.EAGER) @Builder.Default private List commentList = new ArrayList(); } // ---------------------------------- public class Comment { @ManyToOne(fetch = FetchType.LAZY) @JoinC..

트러블슈팅

WSL 설치 오류

WSL 설치 오류 Docker 사용을 위해 WSL 을 설치하면서 겪은 우여곡절을 정리해본다. 문제 발생 & 해결 과정 먼저, WSL을 설치하려는 중에 문제가 발생했다. 발생한 에러 내용들로는 아래와 같다. error code: wsl/service/createinstance/createvm/hcs/hcs_e_hyperv_not_installed Please enable the Virtual Machine Platform Windows feature and ensure virtualization is enabled in the BIOS. 이상하게도 가상화 관련 문제가 발생했다. CPU 가상화, 하이퍼바이저 플랫폼, 가상 머신 플랫폼 모두 켜져있는 것을 확인했지만 계속해서 가상화 옵션이 꺼져있다는 에러를 뱉..

트러블슈팅

[오류를 잡아보자] Spring boot 에서의 경로 지정 (ERR_ABORTED 404 해결)

문제점 이번에 겪었던 오류는 Spring boot를 통해 개발을 하다가 겪게 되었다. Html 파일에서 css나 img 태그를 통해서 이미지를 넣으려는데 로컬파일에서는 잘 보이던 이미지들이 Run을 통해 서버를 띄우면 나타나지 않는 나타나지 않는 이슈였다. 30분이 넘게 경로를 바꿔보면서 해결되도록 노력해봤지만, 아무것도 달라지지 않았다. 그 후 여기저기 구글링을 해보면서 알아보았고 무엇이 잘못 되었는지 알 수 있게 되었다. Chrome에서의 오류코드는 다음과 같았다. ERR_ABORTED 404 해결 이 오류코드의 이유는 다름아닌 경로 설정 문제였다. Spring boot의 WebProperties.java 파일에 아래와 같은 내용을 확인 할 수 있다. private static final String..

ppusda
'트러블슈팅' 카테고리의 글 목록