본문 바로가기
개발자/비트캠프

spring : java.lang.IllegalArgumentException + 해결

by mingutistory 2019. 12. 7.
728x90

+ 2022년 9월 21일 내용 추가

이 글 작성하고 거의 3년이 지났는데 조회수가 어느 정도 계속 나오고 있어서 약간 창피한 마음에 오류 접근 법을 추가로 설명해본다.

마지막에 내가 오류 문장을 읽고 오류를 해결 한 것 처럼 로그는 반드시 살펴야 한다!

 

우선 지금 발생하고 있는 java.lang.IllegalArgumentException 예외는 오류 발생 지점에서 뭔가 잘못 된 파라미터(인자)가 넘어갔을 때 발생하는 오류이다. 그러니까 메소드에 전달되는 파라미터가 잘 전달 되고 있는지 확인을 해줘야 한다. 

지금 같은 경우에는 로그만 잘 읽어도 바로 해결 될 문제다.

보통 IllegalArgumentException 나면 데이터 형이랑 파라미터 확인하면 거의 해결되었다.

 

3

https://jamong-icetea.tistory.com/67

 

[Spring] [MyBatis 에러] Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for

심각: Servlet.service() for servlet [action] in context with path [/myweb2] threw exception [Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exceptio..

jamong-icetea.tistory.com

다 확인했다고 생각하는데 오류나고 있음. 

 

>

https://seungjenote.tistory.com/entry/Spring-Mybatis-%EC%97%90%EB%9F%AC-5%EA%B0%80%EC%A7%80%EB%A7%8C-%EC%95%8C%EB%A9%B4-%ED%95%B4%EA%B2%B0

 

Spring Mybatis 에러 5가지만 알면 해결!!

Spring Mybatis Error 해결 방법 Spring Mybatis 에러는 제 경험상 5가지만 체크하면 99.8% 정도는? 해결 가능! Error : java.lang.IllegalArgumentException: Mapped Statements collection does not contain val..

seungjenote.tistory.com

mybatis-config.xml 파일을 설정해 준 적이 없음. 

근데 왜 나만 안되고 다른 사람들은 다 되는 걸까? 

왜냐면 진짜 배운적이 없기 때문에 아무도 설정을 해주지 않았기 때문 .. 

 

설명되게 잘 되어 있는 블로그

https://min-it.tistory.com/6

 

[05] Spring + Mybatis + mysql 설정

안녕하세요. MIN-IT입니다. 이번시간은 스프링 프로젝트와 DB(Mysql)을 연결하는 시간을 가지겠습니다. 퍼가실 때 댓글을 남겨주시면 감사하겠습니다. http://min-it.tistory.com 출처: http://min-it.tistory.com..

min-it.tistory.com

마지막 방법을 써보자하고 mybatis-config.xml 파일을 설정해줬는데 여전히 똑같았음. 

 

root-context.xml을 내가 이해하지 못하고 있다는 걸 알았다

일단 mapperLocations랑 configLocation 설정 해뒀던거 지워버리니까 실행은 됬는데 다시 기존 오류로 돌아왔다. 

 

진짜 일단 진짜 모르겠다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

이해가 안간다 

 

 

해결 

MemberMapper.xml

resultMap > type = "com.spring.springQuiz2.MemberVO" id="memberVO" 

select문에서 parameterType은 참고 할 클래스의 경로를 지정해줘야 함. 

 

Result Maps collection does not contain value for com.springspringQuiz2.MemberVO 이게 오류 문장이었는데 resultMap은 참고할 클래스의 경로를 지정해주는게 아니라 위에서 우리가 선언한 타입을 사용하는거기 때문에 resultMap 타입의 id를 사용해줘야 함. 

그래서 지금 나처럼 쓴 경우에는 둘 다 MemberVO라서 햇깔릴 수 있으니까 변경 필요. 

 

여튼 개념 부족의 문제였다는 이야기

300x250

댓글