2016-12-16 9 views
0

バッチレットの依存性注入に問題があります。Java EE - バッチレットへの依存性注入

@Named 
public class SimpleBatchlet extends AbstractBatchlet { 
    @Inject 
    protected StorageService storageService; 

    ... 

    public String process() throws Exception { 
    storageService.doSomething(); // this throws a null pointer exception 
    } 
} 

@Named 
public class LocalFileStorageService implements StorageService { 
    public void doSomething() { 

    } 
} 

私はすべて無駄に、META-INFおよびWEB-INFの両方にbeans.xmlのを入れて、それを削除しようとしています。また、Beanのスコープをシングルトンなどに変更しようとしました.BatchRuntimeを使用してジョブを開始するメソッドで@Scheduleアノテーションを使用してバッチジョブを呼び出す/開始しています。

私はこれがうまくいくと知っているので、私は単純なものを見逃しているに違いありません。私が使用する豆の実際の範囲は変わる必要があるかもしれませんが、私が作ろうとしているのは、豆の範囲が問題だとは思わないが、他の設定上の問題です。

私はStorageServiceの実装が1つしかないことにも注意してください。

+0

あなたの質問からは、何が効果的で何が効果がないのかは不明です。たぶんあなたはそれを言い換えていくつかの例文コードを提供してください –

+0

が更新されました、うまくいけば、これは役に立ちます。 – Walter

答えて

0

本当にあなたの問題が何であるかは明らかではないが、あなたのBatchlet @Dependentに注釈を付けることで問題解決する必要があります(NPEが注入されたCDI Beanで?):CDIとの統合のための@Named@Dependentする必要が

@Named 
@Dependent 
public class SimpleBatchlet extends AbstractBatchlet { 
    @Inject 
    protected StorageService storageService; 
} 

Batchletを。