2012/11/15 14:38

웹서비스 DI 에러. Architect



캐 삽질을 했다.ㅠ

웹 프로젝트만 진행하다가
어찌어찌하여 이제는 웹서비스에도 발을 들이게 되었다.

웹서비스... 절대 만만한 놈이 아니라서,
검색하고 분석하면서 조금씩 익혀가고 있는 중이다.

현재 우리 프레임웍(웹기반)에 apache cxf를 올려서
웹서비스도 가능하도록 소스를 제공한 상태인데.
웹서비스 서버, 클라이언트 테스트 모두 순조롭게 진행 되었다.
( bottom-up 방식으로 기작성한 service를 이용하고
 이클립스에서 제공하는 generate 기능을 사용했기에, 생각보다 쉽게 진행되었다.
 물론, 현재는 서비스당 하나의 메소드에 return이 String 이므로,, 
 아직 초보적인 수준이지만 그래도 어떻게 돌아가는지 컨셉을 이해하는 정도는 됐다.)

그래서 이제 DB를 붙여서 실제 웹서비스같이 구현하기위해 
소스를 수정해 보고 있었는데 이게 잘 안된다;;
생각같아서는 스프링을 사용하기 때문에.. 
DI 이용해서 작성해 놓은 DAO 호출하면 되는
정말 간단한 내용일꺼라 생각했다.

그런데, 
이게, 서버 올리면 자꾸  '정보: failed to resolve resource dao' 이런 에러를 뱉어내고 
동작시키면 'java.lang.NullPointerException떨어진다..

왜그러나왜그러나,, 한참을 본 결과.
만 하루가 지나서 찾아냈다.ㅋㅋ

이유는.
이게 웹서비스용 프로젝트가 아닌,
웹용 프로젝트에 웹서비스를 추가하다 보니.
componentScan을 하는 부분이 
dispatcher-servlet에 존재했던 것이다.
즉, 
웹서비스를 하는 설정 파일은 
ContextLoaderListener가 바라보는 
contextConfigLocation에 위치한 것들인데
그 설정파일 내에 componentScan을 하는 부분이 빠져있었던 것이다.

그래서, 
<context:component-scan base-package="com" />
이 부분을 contextConfigLocation내의 설정파일에 추가했더니
OK!!

어설프게 아는건, 죄악이다!!
정말 힘들게 찾아낸, 그만큼 보람진!!

또 하나 알아간다~~ 유후~

덧글

댓글 입력 영역