2024/04 54

TransientDataAccessResourceException, SQLException

4월 27, 2024 10:27:04 오후 org.apache.catalina.core.StandardWrapperValve invokeSEVERE: 경로 [/05]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [INSERT INTO forum.`member` (member_id, passwd, member_nm, email, auth_yn, pwd_chng_dtm, j..

에러 모음 2024.04.27

EmptyResultDataAccessException

4월 26, 2024 6:10:02 오후 org.apache.catalina.core.StandardWrapperValve invokeSEVERE: 경로 [/04]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0]을(를) 발생시켰습니다.org.springframework.dao.EmptyResultDataAccessException: Incorrect resul..

에러 모음 2024.04.26

[4회차 과제 03] 중복아이디 처리

과제 03중복아이디 알림이제 회원가입 시 중복 아이디면 회원가입 실패 메시지가 나오게 해보겠습니다MemberDao먼저 memberId값을 조회하는 쿼리를 작성합니다public String getMemberId(String memberId) { //아이디값 찾기 String sql = "SELECT member_id FROM forum.member WHERE member_id ='" + memberId + "'"; return queryForObject(sql, String.class);}이제 이걸 JoinService에서 실행시킵니다JoinServicepublic int join(HashMap params) { String passwd = params.get("pass..

[4회차 과제 02] NullPointException 처리하기

과제 02NullPointException 처리하기이제 인증을 완료하면 auth_yn이 "Y"로 바뀌었기 때문에 인증완료한 인증메일로 다시 접속하면 auth_yn = "N"라는 조건에서 걸리기에 500에러 화면이나오며 NullPointException이 발생합니다 그렇기에 이제 이 NullPointException 예외처리가 필요합니다JoinService예외처리는 간단하게 try-catch를 사용해 보겠습니다public boolean emailAuth(String uri) { boolean result; try { // true반환 MemberAuthDto memberAuthDto = memberAuthDao.getMemberAuthDto(uri); //인증 유효..

[4회차 과제 01] 인증 이메일 완료 후 DB auth_yn(인증여부) 바꾸기

과제 01인증 이메일 완료 후 DB auth_yn(인증여부)를 "Y"로 바꾸기전에 만든 회원가입 인증메일을 받고 인증하기를 하였을 경우 "인증 완료" 메시지는 나오지만 DB에 있는 인증여부(auth_yn)는 바꾸지 않았습니다 이걸 과제로 변경해 보겠습니다MemberAuthDaoMemberAuthDao에 update쿼리를 작성해보겠습니다처음에 WHERE 조건을 uri로 하려했다기 너무 길기도해서 seq로 했는데 문제 없이 작동 잘되었습니다. 쿼리문은 간단하게 작성하였습니다 forum의 member_auth 테이블에서 member_seq이 같으면 auth_yn = 'Y'로 변경 //인증 완료되면 auth_yn='y'로 바꾸기 public int updateAuthInfo(MemberAuthDto m..

IncorrectResultSetColumnCountException

4월 25, 2024 9:58:39 오후 org.apache.catalina.core.StandardWrapperValve invokeSEVERE: 경로 [/04]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 7]을(를) 발생시켰습니다.org.springframework.jdbc.IncorrectResultSetColumnCountExcepti..

에러 모음 2024.04.25

CannotGetJdbcConnectionException, CommunicationsException

4월 25, 2024 9:28:51 오후 org.apache.catalina.core.StandardWrapperValve invokeSEVERE: 경로 [/04]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications li..

에러 모음 2024.04.25

DataIntegrityViolationException, SQLIntegrityConstraintViolationException

4월 25, 2024 4:34:21 오후 org.apache.catalina.core.StandardWrapperValve invokeSEVERE: 경로 [/04]의 컨텍스트 내의 서블릿 [pf]을(를) 위한 Servlet.service() 호출이, 근본 원인(root cause)과 함께, 예외 [Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: StatementCallback; SQL [INSERT INTO forum.member_auth (member_seq, auth_num, auth_uri, reg_dtm, expire_dtm, auth_yn) VALUES( '0..

에러 모음 2024.04.25

NotWritablePropertyException, BeanCreationException

4월 25, 2024 2:57:02 오후 org.apache.catalina.core.StandardContext listenerStartSEVERE: Context initialized 이벤트를 [org.springframework.web.context.ContextLoaderListener] 클래스의 인스턴스인 리스너에 전송하는 동안 예외 발생org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'joinService' defined in file [C:\dev\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\04_sp..

에러 모음 2024.04.25

[4회차 03] 인증 유효성 검사

인증 유효 검사인증 유효한지 검사 = 유효시간보다 작아야유효 시간 비교 => 숫자 timestamp자바에서 시간비교는 timestamp로 하며 sql에서는 DateTime으로 합니다그러므로 expire_dtm 쿼리의 Data Type을 DateTime으로 변경해 줍니다MemberAuthDaopublic int addAuthInfo(MemberAuthDto dto) { String sql ="INSERT INTO forum.member_auth " + "(member_seq, auth_num, auth_uri, reg_dtm, expire_dtm, auth_yn) " + "VALUES(" + dto.getMemberSeq() ..