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: Could not autowire field: br.com.test.ws.InterfaceServiceTest br.com.test.impl.SomeBeanImpl.interfaceServiceTest; です。ネストされた例外は org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [br.com.test.ws.InterfaceServiceTest] が依存関係に見つかりません: この依存関係のオートワイヤー候補として適格な少なくとも 1 つの Bean が必要です。依存関係アノテーション: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

私は何を間違っていますか?

ありがとう。

4

1 に答える 1

2

クライアントを注入しようとしているクラスでは、@Autowired を使用せず、代わりに @Resource を使用してください。@Autowired と @Inject のため

1) タイプによる一致 2) 修飾子による制限 3) 名前による一致

そして @Resource

1) 名前による一致 2) タイプによる一致 3) 修飾子による制限 (名前で一致が見つかった場合は無視されます)

あなたの場合、プロキシを使用しているため、クラスタイプは必要なものではありません。@Resource を使用すると、名前で検索することから始めます。

于 2013-11-20T04:16:27.033 に答える