본문 바로가기
기타/오류해결

[JSP] java.lang.NullPointerException 오류해결하기

by 하루디 2021. 5. 27.

 

java.lang.NullPointerException 오류는 코드를 짜면서 가장 많이볼 수 있는 오류가 아닐까 생각한다.

 

이 오류는 사람마다 다 다른 이유로 발생하는데, 원인은 코드를 짤때 철자를 틀리거나 "를 안붙이거나 했을때 나는 오류이기 때문이다. 거의 하루한 번 오류를 보는 것 같은데 모든 오류는 제일 윗줄로 올라가서 : 이 다음 부분, 그리고 as 부분에서 뒤에 apache나 javax오류 말고 내 주소의 오류만 확인하면 해결된다. 

 

*주의* 할 점은 이 오류가 났을때 검색해봐도 본인의 상태와는 다른 오류이기때문에 정답을 찾을 수가 없고, 진짜 사소한 오타로도 오류가 나기때문에 내가 봐도 잘 모르겠다는 점인데 이럴때는 잠시 쉬었다가 다시 오타를 찾아보고.. 그래도 안된다면 새로 적은 코드들을 삭제하고 다시 적어보는 것이 많이 도움이 됐다.

 

 

>>오류 해결하기

 

: "java.util.List.size()" because "boardsEntity" is null 

List가 비어있어서 List.size(); 문을 수행할 수 없다고 하는 오류가 발생했다. 저 줄에서 오류가 발생했는데, 수정한 부분은 빨간색으로 적은 List<Board> boardsEntity = boardDAO.findAll(page); 이 코드밖에 없었다. 문제가 없다. 다음 빨간줄으로 내려가서 (BoardController.java:49)와 (BoardController.java:31)를 확인해보는데, 이 부분은 수정한적이 없고 수정하기 전에는 실행이 잘 됐다면 문제가 없다. 

 

 

 

빨간색 오류를 눌러서 확인이 안된다면 이제 수정한 구문들을 찾아가야한다.

 

내가 수정한 부분은 바로 여기 findAll 함수부분이고 오류는 sql문에서 났다. list 에 넣어야하는 컬럼중 두 개를 빼먹은 것이다. 

 

 

오류에는 (ListAction.java:35)이 부분을 확인하라고 했는데 왜 다른 파일에서 오류가 났냐면 그 구문을 실행하기 전에 List에 add하는 문법에서 이미 오류가 발생했기 때문에 그 코드까지 넘어갈 수가 없기 때문이다.  내가 빼먹은 userId와 created 두 가지 때문에 while함수가 실행되지 않았고 그래서 List가 null으로 나오게 된 것이다.

 

 

>>수정한 내용

 

content뒤에 userId, created 두가지를 추가해서 넣어준다. 

수정완료한 뒤에는 console 창을 clear해주고 정상적으로 작동되는지 다시 확인해보고 잘 수행된다면  또 오류가 발생했다면 당황하지말고 빨간색을 차근차근 읽어본 뒤에 다른부분을 또 수정해주면 정상적으로 실행될 것이다. 

 

 

>> 정상실행됐을때 console 출력내용

"=========" 밑에 나오는 숫자가 null이라고 말하던 List. size(); 입니다.