톰캣 구동시 에러
- 작성자 :
- 이*민
- 작성일 :
- 2011-10-10 12:01:28
- 조회수 :
- 1,844
- 구분 :
- 개발환경
- 진행상태 :
- 완료
Q
안녕하세요..
막히는 부분이 있어서 이렇게 질문 좀 합니다.
우선 기존 공통컴포넌트 기존 구조을 따라가고
저희가 추가되는 부분을 패키지를 추가하여
egov-com-servlet.xml에 파일에 base-packge에 추가하였습니다.
그래서 자바 패키지와 리소스 패키지가 추가 되었습니다.
근데 새로 생긴 패키지에 있는 컨트롤러에서 service를 호출 시 제대로 동작을 하는데, 기존에 있던 공통 컴포넌트 컨트롤러 파일에 새로 추가된 자바 패키지 안에 있는 service를 호출을 할 때 service를 찾지 못한다고 나오네요.
@Resource(name = "aptInfoService")
public AptInfoService aptInfoService;
제가 기존에 있던 컨트롤러에 추가 한 내용입니다.
또 다르게 설정하는 부분이 있는지 부탁드리겠습니다..
막히는 부분이 있어서 이렇게 질문 좀 합니다.
우선 기존 공통컴포넌트 기존 구조을 따라가고
저희가 추가되는 부분을 패키지를 추가하여
egov-com-servlet.xml에 파일에 base-packge에 추가하였습니다.
그래서 자바 패키지와 리소스 패키지가 추가 되었습니다.
근데 새로 생긴 패키지에 있는 컨트롤러에서 service를 호출 시 제대로 동작을 하는데, 기존에 있던 공통 컴포넌트 컨트롤러 파일에 새로 추가된 자바 패키지 안에 있는 service를 호출을 할 때 service를 찾지 못한다고 나오네요.
@Resource(name = "aptInfoService")
public AptInfoService aptInfoService;
제가 기존에 있던 컨트롤러에 추가 한 내용입니다.
또 다르게 설정하는 부분이 있는지 부탁드리겠습니다..
A
문의하신 내용에 답변드립니다.
우선 어노테이션 기반의 빈을 생성하기 위해서는 component-scan 을 이용해야 합니다. 그리고 말씀하신대로 egov-com-servlet.xml(디스패처서블릿설정파일) 내에 base-packge 를 추가하셨다고 했는데 아래와 같이 exclude 및 include 필터 설정을 확인 부탁드립니다.
<context:component-scan base-package="egovframework">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
위와 같이 설정이 되어 있다면 Service 부분은 배제된 상태입니다. 그리고 일반적으로 egov-com-servlet.xml(디스패처서블릿설정파일)에서는 프리젠테이션 관련 빈 설정을 하고 서비스나 리파지토리의 경우 context-common.xml 파일에서 component-scan 을 통해 설정합니다. 따라서 context-common.xml 파일에 base-packge 를 추가 하신 후 테스트 해 보시기 바랍니다.
우선 어노테이션 기반의 빈을 생성하기 위해서는 component-scan 을 이용해야 합니다. 그리고 말씀하신대로 egov-com-servlet.xml(디스패처서블릿설정파일) 내에 base-packge 를 추가하셨다고 했는데 아래와 같이 exclude 및 include 필터 설정을 확인 부탁드립니다.
<context:component-scan base-package="egovframework">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/>
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
위와 같이 설정이 되어 있다면 Service 부분은 배제된 상태입니다. 그리고 일반적으로 egov-com-servlet.xml(디스패처서블릿설정파일)에서는 프리젠테이션 관련 빈 설정을 하고 서비스나 리파지토리의 경우 context-common.xml 파일에서 component-scan 을 통해 설정합니다. 따라서 context-common.xml 파일에 base-packge 를 추가 하신 후 테스트 해 보시기 바랍니다.