본문 바로가기
개발 관련 학습 및 문제해결

스프링부트 Whitelabel Error Page 에러 해결방법[20221003 TIL] this application has no explicit mapping for

by 날파리1 2022. 10. 3.

은근 자주 겪는 화이트 라벨 에러

자바 화이트 라벨 에러

자바에서 작업을 하던 중 화이트 라벨 !?!!?

테스트 코드도 다 짜두었고 심지어 테스트도 다 통과한 뒤 라 더 당황스러웠다...

 

 

답이 궁금하신분은 마지막만 읽으세요

 

오류를 읽어보자

 

this application has no explicit mapping for 이라는데... 아니 맵핑을 분명 정확한 주소로 설정 해주었는데 ...라고 하며 

 

시도 1 맵 주소 바꾸기 반환 해주는 DTO 다시 다 바꾸어보기

@GetMapping("products")

의 주소를

@RequestMapping("products")

로 바꾸고 맵핑 뒤 주소를 지워보았다. ( 아닐건 알지만 건드릴 부분이 없었다..)

 

해결책아님

 

후자인 DTO는 건드렸다가 더 헷갈리기만 하고 시간은 엄청 썼다.

 

시도 2 블로그 찾아보기

블로그를 쭈욱 둘러보면 거의 다 제시하는 해결책

 

1. 파일의 위치를 맞춰줘라

즉 컨트롤러는 컨트롤러 패키지에 나머지 서비스(어플리케이션) 레포지토리등은 컨트롤러 패키지와 동일 레벨에 위치한 서비스 패키지, 레포지토리 패키지 안에 있으란 말이다. ( 너무 당연한 말 ...)

 

2.index.html 파일 만들어주기

 

1. localhost:8080 으로 연결 시 기본값인 index.html이 없다

스프링 구동 시 처음에는 무조건 index.html 을 찾게 설정이 되어있기 때문에 index.html을 만들어두지 않으면 이런 에러가 난다.

 

해결방법은 

src > main > resources > static

폴더 안에 우클릭 후 new > HTML File 을 눌러

index.html 파일을 만들어주면 된다

 

라고 NO 사실 나는 리소스에서 포트설정을 직접 8000으로 바꾸어주기 때문에 무관해서 시도도 안했다.

 

자 다시 오류 코드를 읽어보자 자.세.히.

 

No default constructor for entity

No default constructor for entity

 

엔터티의 .. 생성자가 없다....  엔터티의 생성자 없이 테스트 코드가 모두 통과되는지 잊고 있었다.

원래 습관처럼 빈 생성자와 게터를 모두 만들어주는데 ( 가장 흔히 까먹고 찾기 어려운 오류라서)

어느 순간 너무 무분별하게 생성자와 게터를 만들고 있는 것 같아 자제했더니 또 하나 배웠다.

 

배운 것

엔터티는 무조건 빈 생성자 만들어주기!

댓글