기혁씨의 삽질표류기

기혁씨의 삽질표류기

[에러] 매핑 과정에서 발생한 NullPointerException

1.문제:NullPointException 2.문제 해결 과정 문제가 발생한 BoardDaoImpl 70번 째 줄을 살펴보니 sc값을 불러올 수 없는(값이 없는) 문제가 생겼다. 애초에 맵핑이 잘못됐다는 의심을 하고 mapper.xml을 살펴봤다. 매퍼를 살펴보니 count 쿼리문에 대한 결과값 resultType이 'BoardDto'로 되어있었다. count 쿼리는 '갯수'를 반환한다. 그러므로 갯수에 해당하는 타입은 'int'인데 엉뚱한 타입값이 들어가니 값이 없다는 NullPointerException이 떴다. 3.문제의 원인: 잘못된 값을 참조했다. 4.문제해결 Mapper.xml에서 searchResultCnt의 ResulType값을 'int'로 교체했다. 5.한마디 NullPointerExce..

기혁씨의 삽질표류기

[에러] 화면 안 넘어가는 문제

문제: 게시판 제목에 걸려있는 링크를 눌러 게시판 읽는 화면으로 이동하려했으나 화면 이동이 안됐다. 문제해결과정: 제목을 누르면 어떤 흐름을 거치는지 다시 되짚어봤다. 버튼을 누르면 controller로 가고 controller의 read(237)메서드가 해당 번호에 있는 작성자, 콘텐츠 정보를 DTO로 Controller에 넘겨주고 값을 넘겨받은 Cntroller는 DTO에 값을 담아 화면단 JSP로 값을 뿌려준다. 문제의 원인을 쪼개봤다. 번호를 클릭하면 제대로 read()를 호출하였는가? DB에서 번호에 관한 데이터를 DTO로 잘 넘겨주고 Controller는 넘겨받았나? Controller에서는 DB의 정보를 JSP단에 잘 뿌려줬는가? 제목 클릭시 주소가 이동하는 URL주소로 잘 넘어갔는가? 1번..

기혁씨의 삽질표류기

[에러] NullPointerException

문제:NullPointException 문제 해결 과정 게시판의 게시물을 불러오기 위해 우측 상단 Board를 눌렀는데 아무런 값이 뜨질 않았다. 인텔리제이를 확인해보니 'BoardController'의 32번째 줄에서 NullPointerException이 발생했다. 흥분된 마음을 가라앉히고 컨트롤러를 살펴봤다. 빨간줄 그은 부분(32번째줄)에서 에러가 발생했다. NullPointerException은 존재하지 않은 레퍼런스를 참조. 즉 null값을 참조했기에 문제가 발생한다. 그래서 값을 못불러 온다고 추측하고 Mapper부터 Controller, Service를 살펴봤다.하지만 null값을 불러올 단서를 못 찾았다. 도대체 왜 값을 못불러 올까? 문제를 포기하고 싶었다. 그런데 도메인을 살펴보니....

기혁씨의 삽질표류기

[에러]404 Not Found

문제:404 Not Found 문제 해결 과정 게시판 목록을 클릭하니 404 Not Found가 떴다! 이 에러메시지가 나왔다는 건 세 가지중 하나라는 결론을 인터넷 검색을 통해 알았다. 1.브라우저에서 요청한 페이지를 찾지 못했을 경우(서버) 2.주소값이 정확하지 않을 경우(클라이언트) 3.해당 페이지가 제거 혹은 이동되었을 경우. 2번부터 살펴봤다. 하지만 아무리 살펴봐도 주소창은 잘돼있었다. 2번은 패스. 1,3 번을 살펴보면 모두 사용자의 요청에 서버가 응답하지 않는 문제가 공통적이라는 걸 알 수 있다. 그래서 경로가 잘못되었나 살펴봤지만 톰캣 경로도 잘 설정돼있고 맵핑도 제대로 되있었다. 물론 jsp페이지도 정상적으로 잘 있었다. 입력문제도 아니고 맵핑과 경로 문제도 아닌데 무엇이 잘못되었을까 ..

기혁씨의 삽질표류기

프로젝트 일련의 과정

프로젝트 진행의 흐름을 드디어 알았다. Service와 Dao는 고정 형태가 고정되어 있기에 그리 어렵지 않다. 하지만 Controller, Mapper-DB, JSP(화면)은 프로젝트의 핵심기능이자 로직이기에 복잡하다. 여기에는 웹의 핵심기술인 Java, HTML, CSS, JavaScript, SQL이 들어간다. 웹기술을 잘 이용하느냐 못하느냐가 개발자의 실력에 더불어 프로젝트의 양질을 결정한다. 기술의 중요성과 더불어 업무를 파악하는 게 무엇보다 중요하다. 업무의 흐름을 알고 있어야 어디서 시작하고 끝나는지 알 수 있다. 또한 프로젝트가 어긋날 경우 어디서 어긋나고 고쳐야하는지 파악이 가능하다.

기혁씨의 삽질표류기

[mySql]Error Code: 1054

INSERT INTO qna (qna_cd, email, phn, qna_ttl, qna_cont) VALUES (1, test, 010-5029-7490, Test, Test입니다) Error Code: 1054. Unknown column 'test' in 'field list' 0.031 sec 오류의 원인: Error Code : 1054의 원인은 sql문의 컬럼 값 혹은 values값을 잘못 입력. 오류 해결의 과정: 해당 SQL문의 컬럼값과 values값을 확인해봤다. 컬럼값은 문제 없는데 아니나다를까 values값에서 문제가 발생했다. 컬럼 값에 해당되는 values의 값은 varchar 타입이기 때문에 값에 작은따옴표('')이 붙어야 한다. 또한 컬럼이 not null이면 값이 모두 들어가..

기혁씨의 삽질표류기

[에러]BeanCreationException:RequestMappingHandlerMapping

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping': Invocation of init method failed; nested exception is java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'testController' method public java.lang.String com.devcamp.eztour.controller.test.TestController.testMappin..

기혁씨의 삽질표류기

BeanCreationException

오류 원인: sqlSessionfactory와 Bean 생성에 실패했다. 오류해결과정: sqlSessionfactory의 버전 설정이 잘못됐는지 확인해봤지만, 버전 설정이 잘못되거나 빼먹지 않았다. myBatis의 연동 문제는 아니였다. 문제해결: myBatis내의 설정이 잘못됐는지 myBatis-config를 살펴봤다. 그런데 alias의 명칭이 잘못 설정되어있는 걸 확인했다. alias명이 CustomerInquiryDto어야하는데, ReservInfoDto로 적혀었다. alias명을 바꿔주지 깔끔히 문제가 해결됐다.

각시탈코더
'기혁씨의 삽질표류기' 카테고리의 글 목록 (2 Page)