본문 바로가기

JPA

@RequestParam URL 특수 문자 입력 시 NullPointerException 날 때 특수 문자 Encoding 처리

JPA QueryDsl 활용하여 목록 조회 기능을 개발하였다

테스트하려고 PostMan 으로 GetMapping API를 쏘았는데

500에러 NullPointerException 발생

 

도대체 뭐가 문제일까 코드를 살펴보니 코드상 문제는 없어보였는데... 문제는 아주 간단했다

 

 

개발단계에서 enum 을 활용하여 searchType에 세 가지를 설정해두었다.

  • 제목으로 검색하는 경우
  • 내용으로 검색하는 경우
  • 제목+내용으로 검색하는 경우

총 세가지 검색조건 중 제목, 내용 두 가지는 아무 문제가 없었다.

"제목+내용" 이것도 이름을 "ALL", "둘다" 이런식으로 일반적인 문자열로 바꿔준 다음 API를 쐈을때는 문제가 없었다.

 

결론은 개발하면서는 아무 문제가 없더라도

URL 에 + 와 같은 특수문자가 들어가면 컴퓨터가 인식하는데 헷갈려한다는 것

 

이렇게 URL에 특수문자 인코딩된 값으로 바꿔주니 정상적으로 동작했고 개발해둔 결과값들이 조회가 되었다.

자바에서 인코딩, 디코딩 해주는 메소드도 있다고하니 궁금하신 분들은 검색해서

사용해보는 것도 좋을 듯 하다.

 

 

참고
 https://kjcc2.tistory.com/2045