백엔드/Spring131 [Spring] Swagger Error - Failed to load API definition. Failed to load API definition. Fetch error undefined http://localhost:8080/v3/api-docs Spring 에서 Swagger3을 사용하고 있는데 해당 오류가 발생했다. 해결 방법 (1) Spring Security도 사용하고 있어서 permitAll()을 사용했다. ... .antMatchers("/swagger-ui/**", "/v3/api-docs/").permitAll(); 해결 방법 (2) permitAll을 사용해도 안된다면 @ApiImplicitParam 이라는 어노테이션을 사용하고 있을때 @RequestBody와 요구되는 Param이 일치하지 않아서 생기는 오류일 수 있어서 해당 부분도 확인해보면 좋다. 2023. 8. 17. [JPA] Swagger Error - [Request processing failed; nested exception is java.lang.NullPointerException] with root cause Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause 이유 NullPointerException이 발생한 이유는 Query 조건 중에 Null이 들어갔기 때문이다. 해결방법 쿼리에 Null이 안들어가도록 수정해주면 된다. 2023. 8. 16. [Spring] Spring HATEOAS란 HATEOAS란 Hypermedia As The Engine Of Application State 약자로 REST API의 필수 구성요소 중 하나이다. Spring HATEOAS 는 스프링 프로젝트중에 하나인데 이 프로젝트의 목적은 REST API를 보다 쉽고 편리하게 사용할 수 있게 일종의 툴을 제공해주는 프레임워크이다. REST API를 사용하는 클라이언트가 전적으로 서버와 동적인 상호작용이 가능하도록 하는것을 의미하는데 이러한 방법은 특정 API 요청 시 어떠한 행동을 할 수 있는지 URL을 전달하여 클라이언트가 참고해 사용할 수 있고 리소스 정보 뿐만 아니라 리소스 상태에 따라 다양한 링크 정보가 바뀌며 동적으로 리소스를 구성한다. 즉, 높은 수준에서 클라이언트와 서버를 분리시키고, 의존성을 줄여.. 2023. 8. 10. [JPA] List to Page - List를 Page로 변환해서 사용하기 JPA 에서 제공하는 Page를 사용하고 싶은데 데이터를 가공해서 사용하다 보니 List 로 결과가 나오고 있어서 List를 Page로 변환해서 사용하고자 한다. 아래 코드를 참고해서 List 를 Page로 변환해서 사용하면 된다. 방법1 Page pageResult = (Page) PageUtils.makePageResponse(list, pageable); 페이징 처리를 위한 공통 코드 public static Page makePageResponse(List list, Pageable paging, int totalCount) { try { return (new PageImpl(list, paging, totalCount)); } catch (Exception e) { return (new PageI.. 2023. 8. 7. [JPA] JsonMappingException: Infinite recursion (StackOverflowError) 오류 이슈 원인 Member 엔티티와 Company 엔티티간의 연관관계가 있는데 Company 엔티티에서 JSON으로 반환하는 과정에서 생긴에러로 Company에더 LAZY JOIN을 해도 JSON으로 변환하는 중 직렬화(serialize) 과정을 거치는데 Member에 Company가 있어서 Company를 참조하고, Company에 있는 Member 를 참조하면서 무한 재귀가 발생했다. 해결방법 @JsonIgnore 참조하는 엔티티에서 (재귀를 일으키는) 필드에 @JsonIgnore 를 추가한다. DTO 생성 엔티티로 반환하지 않고 리턴용 DTO를 따로 만들어서 사용한다. 해결 나는 두번째 해결 방법인 DTO로 반환해도 해당 문제가 생겼는데 DTO 에서 엔티티 정보 전체를 가져오는게 있다보니 생기는 문제였.. 2023. 8. 3. 실전! 스프링 데이터 JPA 내용 정리 - 섹션 4(1) 실무에서 JPA를 사용하는데 개념적인 부분을 집고 넘어가면 좋을 것 같아서 강의를 보게 되었고 인프런 강의를 보고 내용 정리를 해보았다. 프로젝트 어노테이션 @NoArgsConstructor(AccessLevel.PROTECTED) 엔티티에서 레벨을 protected 까지로 한다 Protected 로 설정하는 이유는 무분별한 객체 생성에 대해 한번 더 체크할 수 있게 한다. 그러나 @Builder와 같이 사용하고 싶다면 AllArgsConstructor 와 같이 사용하거나 @Builder @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) 안에 @Builder를 계속적으로 선언해서 사용해야한다. @Builder 를 사용하면 의미있.. 2023. 8. 2. 이전 1 2 3 4 5 6 7 8 ··· 22 다음