2011-12-21 2 views
4

束一つは、クラスServiceImplによって実装サービス注入ありません)、最初のバンドルで提供されるサービス使用:インスタンスを、そしてServiceImplはIServiceを提供すること:私はインポートし、フェリックスに2つのバンドルを起動するとIPojo @ReferenceインターフェイスIServiceを有する

@Component 
@Provides 
@Instantiate 
public class ServiceConsumer 
{ 
    @Requires 
    private IService service; 

    public doIt() 
    { 
     service.doSomething(); 
    } 

} 

することは、私はすべてのサービスが正しくipojo使用してインスタンス化されていることがわかります。ただし、doIt()が実行されると、serviceはnullになります。

IServiceが利用可能であるようだから、@Requiresが良いインスタンスを注入することが期待されますが、そうでないようです。

私がやっていないことは非常に明白ですが、私には何も分かりません。

+0

ここにサービスの互換性の問題があるのでしょうか?バンドルはどのように整理されていますか?プロバイダバンドルとコンシューマバンドルの両方が同じ場所からインターフェイスパッケージをインポートしますか? –

答えて

0

アノテーションを使用しているときにXMLファイルは必要ありません。

がインストール「アーチ」コマンドを使用している場合は、すべてのインスタンスが宣言され、有効であることを確認することができます。

ipojo:instances 
ipojo:instance instance_name 

よろしく。

関連する問題