SpringBoot/Error

[Error] java.lang.NullPointerException

HU_717 2024. 11. 27. 16:50
  • 게시판에 mybatis를 활용하여 FileUpload를 하는 과정에서 to에 null 이 받아오는 문제가 발생했다   

java.lang.NullPointerException: Cannot invoke "com.example.board.dto.PdsTO.getSeq()" because "to" is null
	at org.apache.jsp.WEB_002dINF.views.design_005fpds0.board_005fdelete1_jsp._jspService(board_005fdelete1_jsp.java:129) ~[na:na]
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:67) ~[tomcat-embed-jasper-10.1.31.jar:10.1.31]
	at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.31.jar:6.0]
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:456) ~[tomcat-embed-jasper-10.1.31.jar:10.1.31]
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:377) ~[tomcat-embed-jasper-10.1.31.jar:10.1.31]

 

  • 이와 같은 문제가 2번이나 발생하였으며 모두 다른 해결방안을 사용하였다
  1. dao에 해당 내용 추가
String filename = pdsMapper.filename(to);
int result = pdsMapper.delete_ok(to);

if (filename!=null){
    new File("경로",filename).delete();
    // filename 오류(null로 나옴)
    System.out.println(pdsMapper.filename(to));
}
  1. Controller 에 to 담는 것 추가
model.addAttribute( "flag", boardDAO.boardDeleteOK( to ) );

 

  • 처음에는 DAO부분에 코드 순서가 잘못되어서 filename을 null이 된 상태로 받아오려고 한 문제였다
  • 두번째에는 Controller부분에 model.addAttribute 코드를 빼먹어서 to의 값을 담지 못하고 null만 출력하는 문제였다
  • 이러한 오류를 해결할때에는 로그를 출력해서 어느 부분에서 값이 null 이 나오는지 확인이 필요하며 해당 부분에 빠진 코드는 없는지, 순서는 잘못되지 않았는지 확인이 필요하다