web-dev-qa-db-ja.com

BeanNotOfRequiredTypeExceptionですが、実際には$ Proxyタイプでした

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プロジェクト->

Spring-context

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

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

バージョン:aspectjweaver:1.6.10アスペクトjrt:1.6.11 cglib:2.2 Spring 3.2.2

7
MaximeF

問題は、同じID(名前)を持つ2つのBean(jaxrs:client)があることでした。

11
MaximeF