본문 바로가기

Java/삽질기록

[Spring] 1차 면접 테스트 삽질 기록

Spring + mybatis 사용해서 게시판 만드는것이 테스트였고 시간도 정해져있었다.

에러발생 시켰던 부분을 확실하게 다시 집고 넘어가기 위해 기록한다.

 

STS에서 프로젝트 생성하고 porm.xml을 버전에 맞게 세팅하고 위치에 세팅도 다하고 db까지 생성하였다.

그후에 다시 서버를 키는데

 

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource 에러가 발생하였다

이것보다 에러메세지는 더 길고 많지만 mapper 관련 문제 얘기였기에 뭘 빼먹은걸까 생각해보니 아뿔싸

Mapper 파일에 mybatis 연동할때 반드시 넣어야하는

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

이녀석을 넣는것을 까먹고있었다.. 그후에 작업을 진행하고 이제 회원정보를 insert 단계가 필요했는데

 

두번째 에러 발생

## Cause: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for employeeDAO.insert]을(를) 발생시켰습니다.

 

 

이 단계에서 너무 막혔다..

처음에 세팅할때도 이상없이 페이지가 떴었는데 insert를 하려니깐 에러라니 

원인을 찾아보니 id도 불일치, servlet.context 에 mapper경로가 잘못되어있는게 대부분의 원인인데 암만 찾아봐도 맞았다.

1시간 가까이 이것저것 고쳐가 가며 헤메다가 mapper에 있는 id 텍스트를 복붙해서 dao에 적었다 (분명 스펠링이 같았는데?)

근데 에러가 고쳐졌다... 내가 잘못한것이 맞을테니깐

 

다음에는 dao에 적혀진 아이디랑 mapper에 적혀진 아이디랑 같게 복붙해서 쓰자

 

여차저차 insert까지 성공했다. 이제 db에서 조회하려니 이게 왠걸 db에 들어갈때 한글이 깨지는것이었다.

 

jsp에 utf-8세팅을 찾아봤는데 >> 그건했다. 

그럼 db생성할때 default charset=utf8;을 안했나? >>그것도했다

 

또 내가 뭘 세팅안하고 넘어간걸까 하고 생각하던 찰나에 web.xml 에 filter세팅을 하단에 적어야한다고 했던것이 떠올랐다.

<filter>
	<filter-name>encodingFilter</filter-name>
	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
	<init-param>
		<param-name>encoding</param-name>
		<param-value>UTF-8</param-value>
	</init-param>
	<init-param>
	<!-- Response응답의 인코딩 타입을 정해준다-->
     <param-name>forceEncoding</param-name>
     <param-value>true</param-value>
   	</init-param>
</filter>

	<filter-mapping>
		<filter-name>encodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

filter-mapping 까지 추가하여 모든 url패턴에도 encodingFilter가 적용되게 추가하였다

web.xml을 프로젝트 생성할때 porm.xml 다음에 세팅해야하는데 이런 기본은 실수하지않도록 기록해놓는다.

 

시간타임어택으로 진행한것은 처음이지만 테스트를 하는 시간동안 이런저런 에러를 만나는것들을 적어놓고 찾아가며 해보니 테스트라는 느낌이 들었어야할텐데 오히려 재밌었다 마치 레고를 시간에 맞춰서 조립하는 느낌이었다고할까

 

 

 물론 부족한 점이 많아서 시간내에 많은 작업을 다 마치지는 못했지만 장난감 조립해보듯 여러 토이프로젝트를 만들어가면서 망가뜨려(?) 보면서 공부하라는 공부방법이 무슨느낌인지도 조금은 알거같았고 또 에러상황과 부딪쳐가며 내 부족한점을 파악하기위해 계속해서 망가트릴수있는 장난감을 만들어볼까한다.