7

我需要有关 Spring 和代理问题的帮助。

org.springframework.beans.factory.BeanNotOfRequiredTypeException:名为 'fooAPIService' 的 Bean 必须是 [com.foo.clientapi.service.FooAPIService] 类型,但实际上是 [com.sun.proxy.$Proxy110] 类型

org.springframework.beans.factory.BeanCreationException:创建名为“activityController”的bean时出错:资源依赖注入失败;嵌套异常是 org.springframework.beans.factory.BeanNotOfRequiredTypeException:名为 'fooAPIService' 的 Bean 必须是 [com.foo.clientapi.service.FooAPIService] 类型,但实际上是 [com.sun.proxy.$Proxy110] 类型

Webapp 项目 ->

弹簧上下文

<context:annotation-config/>
<context:component-scan base-package="com.foo.controller"/>
<aop:aspectj-autoproxy />
<aop:config proxy-target-class="true"/>
<mvc:annotation-driven/>

ActivityController.class

import com.foo.clientapi.service.FooAPIService;
...

@Controller
@RequestMapping(value = "/toto")
public class ActivityController {

@Resource
private FooAPIService fooAPIService;

...
}

另一个项目(微服务)->

FooAPIService.class

@Path("/foos")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public interface FooAPIService {

...
}

Jaxrs 配置:

<jaxrs:client id="fooAPIService"
              address="${toto}"
              threadSafe="true"
              serviceClass="com.foo.clientapi.service.FooAPIService"
              inheritHeaders="true">
    ...
</jaxrs:client>

版本:aspectjweaver:1.6.10 aspectjrt:1.6.11 cglib:2.2 Spring 3.2.2

4

1 回答 1

11

问题是我有两个具有相同 id(名称)的 bean(jaxrs:client)。

于 2014-10-15T01:33:53.627 回答