首页 文章

无法自动装配jaxrs客户端

提问于
浏览
1

我在applicationContext.xml中有这个(我使用http://cxf.apache.org/jaxrs

<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>

我在这个项目中包含带接口的jar但是我得到以下异常:

1318 [localhost-startStop-2]错误org.springframework.web.context.ContextLoader - 上下文初始化失败org.springframework.beans.factory.BeanCreationException:创建名为'someBeanImpl'的bean时出错:注入自动连接的依赖项失败;嵌套异常是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:期望至少有一个bean可以作为此依赖关系的autowire候选者 . 依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}

我究竟做错了什么?

谢谢 .

1 回答

  • 2

    不要使用@Autowired,而是在尝试注入客户端的类中使用@Resource . 因为@Autowired和@Inject

    1)按类型匹配2)按限定符限制3)按名称匹配

    和@Resource

    1)按名称匹配2)按类型匹配3)按限定符限制(如果按名称找到匹配则忽略)

    在您的情况下,您使用代理,因此类类型不是您想要的 . 使用@Resource,您可以按名称查找 .

相关问题