2013-03-25 3 views
1

나는이 프로젝트에 인터페이스 항아리를 포함하고 있지만 다음과 같은 예외 얻고있다는 jaxrs 클라이언트 autowire하기 수 없습니다

<context:annotation-config /> 
<context:component-scan base-package="br.com.test" /> 

<bean id="jsonProvider" class="com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider" /> 

<jaxrs:client id="testClient" 
    serviceClass="br.com.test.ws.InterfaceServiceTest" 
    address="http://localhost:8080/ocs-teste-ws-web/services/myservice"> 

    <jaxrs:providers> 
    <ref bean="jsonProvider" /> 
    </jaxrs:providers> 
</jaxrs:client> 

(내가 http://cxf.apache.org/jaxrs을 사용하고 있습니다) 내 applicationContext.xml이 있습니다

1318 [localhost-startStop-2] 오류 org.springframework.web.context.ContextLoader - 컨텍스트 초기화에 실패했습니다. org.springframework.beans.factory.BeanCreationException : 'someBeanImpl'이라는 이름으로 빈을 만드는 중 오류가 발생했습니다. 자동으로 생성 된 종속성의 삽입이 실패했습니다. 중첩 예외는 org.springframework.beans.factory.BeanCreationException : 필드를 자동 줄 바꿈 할 수 없습니다 : br.com.test.ws.InterfaceServiceTest br.com.test.impl.SomeBeanImpl.interfaceServiceTest; 중첩 예외는 org.springframework.beans.factory.NoSuchBeanDefinitionException : [br.com.test.ws.InterfaceServiceTest] 유형의 일치하는 bean이 종속성에 대해 발견되지 않았습니다.이 종속성에 대한 autowire 후보로 적합한 적어도 하나의 bean이 필요합니다. 종속성 주석 : {@ org.springframework.beans.factory.annotation.Autowired (필수 = true)}

내가 뭘 잘못하고 있니?

감사합니다.

+1

SomeBeanImpl의 코드를 게시 할 수 있습니까? – JustDanyul

답변

1

클라이언트를 삽입하려는 클래스에서 @Autowired를 사용하지 말고 대신 @Resource를 사용하십시오. @Autowired와 @Inject

1)) 유형 2 경기 예선 3으로 제한) 이름

그리고

1 @Resource

에 의해 일치) 이름 2)에 의해 일치하기 때문에 유형별로 일치 3) 한정자 별 제한 사항 (일치하는 이름이있는 경우 무시 됨)

위의 경우 프록시를 사용하므로 클래스 유형이 원하지 않습니다. @Resource를 사용하면 찾기로 시작합니다.

관련 문제