java.lang.NullPointerException
가장 많이 보게 되는 에러 중 하나!
NullPointerException
이 에러는 실제 보물상자가 없고 이름만 있는 것인데,
그 속에서 뭔가 값을 꺼내려고 할때 발생하는 가장 대표적인 에러!
그래서 해당 에러를 발생시키지 않으려고 코딩할때 많은 예외처리를 해
대표적으로~
request.getParameter("good_name") == null ? "" :
request.getParameter("good_name");
이 소스 부분도 널인 경우에는 "" 공백 문자열로 대체 하라는 내용이야
널포인터 익셥센이 안 생기도록~
그럼 다시 네가 추가한 부분으로 돌아가서 왜 해당 에러가 나는지 보자!
그리고 이클립스는 툴이 좋아서 콘솔에서 에러 발생 시, 바로 그 위치로 찾아갈수가 있어
ctrl을 누른 상태에서 해당 에러메세지 부분을 클릭하면 돼
om.getOrder_num() 여기서 널이라는 이야기이고,
그럼 오엠 이라는 변수에는 어떤 객체를 담았는지 위에서 함
찾아보자
================= order_pk_num[]
================= om[null]
헉 보다시피 해당 om 이라는 객체가 널이고 그 원인은
쿼리를 수행할때 조건으로 넘기는 order_pk_num 자체가 값이 없는게
원인이었네~
이해돼?
그럼 order_pk_num을 또 어디서 가져와야 하나요?
ㅋㅋㅋ 잘~ 가져와야지 ㅋㅋㅋ
자 그럼 또 순서대로 함 보자구~
헉 소스상에서
String order_pk_num = "";
이렇게 정의만 해두고 값을 넣는부분이 전혀 없네 ㅜㅜ
아..
//결제성공 이후 처리 : 아래 로직은 PAYAPP 에서 response 받는 소스인 payappres.jsp 에서 처리해도
됨
// 기존의 orderTransactionBymobileDao.java /
orderTransactionDao.java 파일의 insertOrder() 메소드의 로직을 참고하여
orderTransactionTotlaDao.java 파일을 새로 만들어 처리.
//order_pk_num =
orderTransactionBymobileDao.getInstance().insertOrder(request);
//order_pk_num = orderTransactionDao.getInstance().insertOrder(request);
이 부분 내가 지난번에 주석으로 막아놓은 부분 이네~
여기서 해당 값을 조회해서 가져와야해
자 한번 보자
헉~ 제일 위에서 해당 페이지 호출하는 페이지에서 넘겨주는 값을 받고 있네~ ^^
자 보다시피 오더 테이블에 있는 값 중에 우리가 필요한 키 값을 임의로 넣어서 해보니 널 에러 안나고 해당 값 다 가지고
오지?
네네
그럼 남은 일은 바로!
order_pk_num 값만 어디선가 제대로 가져오면 끝~
판매할 책 정보는 기존 책 마스터 테이블에 그 정보가 있겠지만
실제로 주문한 정보는 어디에 있을까?
오더 마스터
오더 디테일
바로 그 테이블에 있겠지~
그럼 그 테이블에 해당 주문 정보를 넣는 시점은 언제일까?
주문이 완료..
그렇지!!!!!!!!!! 바로 주문이 완료된 후에
넣겠지?
아..전에는 결제를하고 나왔던 페이지라 보였던거고
지금은 그게 아니고 결제버튼만 누른거라
안보이는거예요?
바로 그거야~~~~~~~~~~~~ 즉~~~ 지금 우리가 수정하는 소스에서 패이앱결재 요청후에
정상으로 응답이 오면 바로
우리가 해당 주문 테이블에 데이터를 넣어야 하는거지!!!
코딩을 위해 문법을 아는것도 중요하지만
그보다 더 중요한건~
첫째! 개발자가
개발하는 프로그램의 전체 흐름~
둘째!
논리적인 순서도와 연관관계 흐름을 이해하는 것
이것이 되야 개발로직을 제대로 구현할 수 있는거야~
'나의질문답' 카테고리의 다른 글
request.setAttribute (0) | 2014.07.29 |
---|---|
ArrayList (0) | 2014.07.29 |
set함수 , add함수 (0) | 2014.07.29 |
ArrayList (0) | 2014.07.29 |
공백에러 , nextToken(); (0) | 2014.07.29 |